`
fireye83
  • 浏览: 137711 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

使用 生成runnable jar

    博客分类:
  • java
阅读更多
<?xml version="1.0" encoding="UTF-8"?>
<project name="ldapTool" default="all" basedir=".">
	<property name="src.dir" value="src" />
	<property name="src.test.dir" value="test" />
	<property name="classes.dir" value="WebRoot/WEB-INF/classes" />
	<property name="lib.dir" value="WebRoot/WEB-INF/lib" />
	<!-- 用于输出打包的文件夹 -->
	<property name="temp.dir" value="${java.io.tmpdir}/${ant.project.name}" />
	<property name="target.dir" value="target" />
	<property name="jar.CreateXmlFromLdap" value="CreateXmlFromLdap.jar" />
	<property name="jar.RegisterToLdap" value="RegisterToLdap.jar" />

	<!--构造打包时Class-Path需要的路径 -->
	<!--pathconvert用于对目录进行组合 property即这个组合的名字,pathsep作用是各个文件之间的分隔符,  
		如果不写,在windows平台默认是分号。但时在MANIFEST.MF这个文件中,各个jar包之间要用空格区分,  
		因此。这里就写成空格了  
		-->
	<pathconvert property="lib" pathsep=" ">
		<!--mapper,对路径组合方式进行控制-->
		<mapper>
			<!--chainedmapper 作用是联合多个mapper-->
			<chainedmapper>
				<!--过滤文件,将路径去掉,只保留文件名-->
				<flattenmapper />
				<!--过滤+转换器,将所有的文件名前面都加上一个lib,我们知道lib目录下面有jar包,  
		lib/*的作用其实是将jar包名与路径进行组合形成如:lib/google.jar这样的相对路径  
		-->
				<globmapper from="*" to="lib/*" />
			</chainedmapper>
		</mapper>
		<!--按照mapper定义的格式组合lib目录下面的所有jar文件,形成诸如lib/jar1.jar lib/jar2.jar的字符串-->
		<fileset dir="${lib.dir}">
			<include name="*.jar" />
		</fileset>
	</pathconvert>

	<!--组合各个路径,构成MANIFEST.MF文件中Class-Path所需的字符串" . " 表示当前目录-->
	<property name="libs" value=" . ${lib}" />
	<echo>libs ${lib}</echo>
	<!-- 定义classpath -->
	<path id="master-classpath">
		<fileset file="${lib.dir}/*.jar" />
		<pathelement path="${classes.dir}" />
	</path>

	<!-- 创建时间戳 -->
	<tstamp />
	<!-- clean -->
	<target name="clean">
		<delete dir="${classes.dir}" />
		<delete dir="${temp.dir}" />

		<delete file="${target.dir}/${ant.project.name}.jar" />
		<delete file="${target.dir}/${ant.project.name}.war" />
		<delete dir="${target.dir}" />
	</target>
	<!-- 初始化任务 -->
	<target name="init" depends="clean">
		<mkdir dir="${target.dir}" />
		<mkdir dir="${temp.dir}" />
		<mkdir dir="${classes.dir}" />
	</target>
	<!-- 编译 -->
	<target name="compile" depends="init" description="compile the source files">
		<javac srcdir="${src.dir}" destdir="${classes.dir}" debug="true" encoding="UTF-8">
			<classpath refid="master-classpath" />
		</javac>
		<javac srcdir="${src.test.dir}" destdir="${classes.dir}" debug="true" encoding="UTF-8">
			<classpath refid="master-classpath" />
		</javac>
		<!--
		<copy todir="${classes.dir}" overwrite="true">
			<fileset dir="${src.dir}">
				<include name="**/*.xml" />
				<include name="**/*.properties" />
				<include name="**/*.bat" />
			</fileset>
		</copy>
		-->
	</target>
	<!--打jar包-->
	<target name="jar" depends="compile">
		<jar jarfile="${target.dir}/${jar.CreateXmlFromLdap}">
			<fileset dir="${classes.dir}">
				<include name="**/*" />
			</fileset>
			<!--为jar包指定manifest,当然,如果jar包不需要打成runnable的形式,manifest可以不要-->
			<manifest>
				<!--指定Class-Path-->
				<attribute name="Class-Path" value="${libs}" />
				<!--指定main-class-->
				<attribute name="Main-Class" value="com.hikvision.cms.ldap.test.CreateXmlFromLdap" />
			</manifest>
		</jar>
		<jar jarfile="${target.dir}/${jar.RegisterToLdap}">
			<fileset dir="${classes.dir}">
				<include name="**/*" />
			</fileset>
			<!--为jar包指定manifest,当然,如果jar包不需要打成runnable的形式,manifest可以不要-->
			<manifest>
				<!--指定Class-Path-->
				<attribute name="Class-Path" value="${libs}" />
				<!--指定main-class-->
				<attribute name="Main-Class" value="com.hikvision.cms.ldap.test.RegisterToLdap" />
			</manifest>
		</jar>
	</target>

	<!--打 zip 包之前-->
	<target name="preZIP" depends="jar">
		<copy todir="${temp.dir}" overwrite="true">
			<fileset dir="${target.dir}">
				<include name="*.jar" />
			</fileset>
			<fileset dir="${src.dir}">
				<include name="**/*.xml" />
				<include name="**/*.properties" />
				<include name="**/*.bat" />
			</fileset>
		</copy>
		<copy todir="${temp.dir}/lib" overwrite="true">
			<!--<fileset dir="${basedir}">
				<include name="${lib.dir}/*.jar" />
				<include name="index.html" />
				<include name="page/**/*.*" />
				<include name="WEB-INF/*.xml" />
			</fileset>-->
			<fileset dir="${lib.dir}">
				<include name="*.jar" />
			</fileset>
		</copy>
	</target>

	<!--运行一下jar包,试试看效果-->
	<target name="run" depends="preZIP">
		<!--其实这里就是运行jar命令,注意fork一定加上,不然不起作用-->
		<java jar="${temp.dir}/${jar.CreateXmlFromLdap}" fork="true">
		</java>
	</target>

	<!--打zip包-->
	<target name="zip" depends="preZIP">
		<jar jarfile="${target.dir}/${ant.project.name}.zip">
			<fileset dir="${temp.dir}">
				<include name="**/*.*" />
			</fileset>
		</jar>
	</target>

	<target name="all" depends="zip">
		<delete dir="${temp.dir}" />
	</target>
</project>

 

分享到:
评论

相关推荐

    如何生成可执行jar文件

    有多种方法可以生成JAR文件,包括使用命令行工具`jar`,或者集成开发环境(IDE)如Eclipse、IntelliJ IDEA等。以下是使用命令行的步骤: - 打开命令行终端。 - 导航到包含所有类文件的目录。例如,如果类文件...

    java打包jar方案的优缺点分析及解决方案

    `fat.jar`插件允许开发者将所有依赖的第三方库一起打包进JAR,生成的JAR文件包含了一个完整的运行环境。这种方法的优点是方便,因为用户无需额外管理依赖。然而,它的主要缺点是生成的JAR文件可能非常大,可能导致...

    使用eclipse打jar包 可执行的jar

    你需要选择"Java" -&gt; "Runnable JAR file",这将创建一个可以直接运行的JAR文件,因为它包含了运行时所需的类路径和主类信息。 4. **配置导出设置**: 在"Runnable JAR file"向导的下一个页面,你需要指定以下内容...

    生成可双击运行的Jar文件

    例如,在Eclipse中,你可以通过右键项目 -&gt; Export -&gt; Java -&gt; Runnable JAR file来创建可执行的JAR文件。 在描述中提到的Java代码片段是一个简单的Java程序,用于查找字符串中的汉字。它使用了正则表达式`[\u4e00-...

    Eclipse 导出可执行Java工程/可执行Jar文件(包含第三方Jar包)

    本教程将详细介绍如何使用Eclipse的"Runnable JAR file"选项来完成这一过程。 首先,确保你的Eclipse版本支持这一功能,这里提到的是Indigo Service Release 1(可能等同于3.7版本)。接下来,按照以下步骤操作: ...

    RunableJar代码自动生成器.zip

    RunnableJar是一种特殊的Java应用程序打包格式,它可以被直接运行,无需通过命令行或者IDE(如Eclipse或IntelliJ IDEA)启动。这种格式的JAR文件包含了运行程序所需的所有依赖,包括类文件、资源文件以及运行时需要...

    Eclipse打包成JAR包读取外部JAR包和外部配置文件

    1. 使用Eclipse的`Runnable JAR file`导出功能。 2. 选择合适的库处理方式,通常推荐`Package required libraries into generated JAR`。 3. 添加外部JAR到`lib`目录,并在导出向导中指定。 4. 将配置文件放在项目根...

    java打包为jar

    3. 在弹出的窗口中,展开“Java”选项,然后选择“Runnable JAR file”(可运行的JAR文件),点击“Next”(下一步)。 4. 在“Launch configuration”(启动配置)中,选择你要作为主类运行的程序,即包含`public ...

    java程序打包jre以及制作安装包

    两种方式分别是:“Extract required libraries into generated JAR”(提取所需库到生成的JAR)和“Package required libraries into generated JAR”(将所需库打包进JAR)。前者可防止反编译,后者保留原始文件...

    将class文件打包成jar文件

    3. **选择导出类型**:在弹出的对话框中,选择`Java` -&gt; `Runnable JAR file`。 4. **配置导出设置**:在下一步中,你可以选择是否将项目依赖项(例如库和其他jar文件)包含在最终的jar文件中,以及是否添加...

    Android代码-一个很好玩儿的 Java 项目,可以直接取图片中的一部分生成二维码。

    How to generate a runnable jar QArt4j is a maven project, run the following command to get a ruunable jar: mvn compile assembly:single This will generate a runnable jar under target/ directory. How to...

    eclipse制作jar工具

    3. **使用Fat Jar插件**:在Eclipse的"Export"菜单中,选择"Java" -&gt; "Fat JAR: Runnable JAR file"。在这个向导中,你可以选择要打包的主类(即程序入口点),以及要包含的库。Fat Jar插件会自动处理所有依赖,并将...

    net.sf.fjep.fatjar_0.0.32.jar

    "fatjar_0.0.32.jar" 提供的便利性在于,用户不再需要担心外部库的管理,只需运行生成的单一JAR文件,即可启动整个应用。这对于分发和运行Java应用程序,尤其是对于那些不熟悉Java环境配置的用户来说,大大降低了...

    Eclipse打包工具FATJAR

    2. **创建Fat JAR**:安装完成后,右键点击项目 -&gt; Export -&gt; Runnable JAR file,在弹出的向导中选择"Package required libraries into generated JAR"选项,这将把所有依赖的库打包进JAR。 3. **配置Main-Class**...

    MyEclipse或Eclipse打jar包插件+详细的使用教程

    3. **Apache Maven**:如果你的项目是Maven管理的,可以使用Maven的`assembly`或`shade`插件来生成包含所有依赖的单个JAR。 四、注意事项 - 在打包时,确保所有外部库都已正确导入,否则打包后的JAR可能无法运行。...

    fat jar,eclipse打包插件

    创建fat jar的方法多种多样,可以使用命令行工具如`maven-shade-plugin`或`gradle-fatjar`,也可以使用IDE插件,如Eclipse中的Fat Jar插件。Fat Jar插件允许用户选择项目中的类和资源,以及它们的依赖,然后将它们...

    Fat-jar工具软件下载

    在Eclipse中,你可以通过菜单选择“Export” -&gt; "Java" -&gt; "Fat JAR: Runnable JAR file"来启动打包过程。在弹出的向导中,你可以指定主类(即程序的入口点),选择要包含的库,以及输出的jar文件名和位置。此外,...

    java项目打包为exe文件

    总结,将Java项目打包为EXE文件涉及两个主要步骤:首先使用Eclipse将项目打包为Runnable JAR,然后借助第三方工具(如Launch4j)将JAR转换为EXE。这个过程对于分发和部署Java应用程序,尤其是针对不熟悉Java环境的...

    net.sf.fjep.fatjar_0.0.32.zip

    然后在项目的"Export Runnable JAR"选项中选择fatjar打包方式,生成的JAR文件即包含所有依赖。 fatjar的优点在于简化了依赖管理,使得Java应用的分发和运行更加简便。然而,由于它将所有依赖都包含在一个JAR中,...

    将myEclipse中的java项目发布成jar

    - 导出完成后,可以在指定的目录找到生成的JAR文件。 5. **验证JAR文件**: - 使用命令行工具验证JAR文件是否正确打包。 - 在命令行中输入`java -jar yourProject.jar`(替换`yourProject.jar`为你实际的JAR...

Global site tag (gtag.js) - Google Analytics