gpt4 book ai didi

java - 如何从终端创建可执行 jar 文件

转载 作者:行者123 更新时间:2023-12-01 11:36:51 25 4
gpt4 key购买 nike

如何从 java 源代码正确构建 java .jar 文件。经过一些研究,构建工具 ant 似乎被认为是配置庄园的最佳实践之一,其中 .java 源文件构建到 .class 文件中,并最终存储在 .jar 文件中。

对于我的项目文件夹,我基本上将 .java 源代码放在 src/classes/HelloWorld.java 中,我将 build.xml 文件放在根目录中。

除了 build.xml 文件中用于指定程序入口点的指令之外,我似乎一切正常。就目前而言,它会导致:

<attribute name="Main-Class" value="com.tutorialspoint.util.FaxUtil"/> 

但我希望它能够引导到我的 src/HelloWorld.java 文件中的 main 方法。

最佳答案

有关使用 ant 的更完整(但基本)的教程可在 ant 的 website 处找到。 。

首先,您需要一个开发环境设置,其中包含用于编译 .java 文件的 javac 和用于编写构建过程脚本的 ant。对于某些操作系统,它就像运行 $ sudo apt-get install ant openjdk-7-jdk 等命令一样简单,但其他操作系统则希望搜索更具体的内容。

您的目录结构应如下所示:

.
├── build.xml
├── README.md
├── src
   └── hello
   └── HelloWorld.java

您的 Hello World 源代码应如下所示(在 HelloWorld.java 中)

// This line is important and tells java that this code is a package of 
// code named 'hello'
package hello;

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}

改编后的 build.xml 文件会像这样(尽管包含未使用的元素):

<?xml version="1.0"?>
<project basedir="." default="build">
<property name="src.dir" value="src"/>
<property name="web.dir" value="war"/>
<property name="build.dir" value="${web.dir}/WEB-INF/classes"/>
<property name="name" value="hello"/>

<path id="master-classpath">
<fileset dir="${web.dir}/WEB-INF/lib">
<include name="*.jar"/>
</fileset>
<pathelement path="${build.dir}"/>
</path>

<target name="build" description="Compile source tree java files">
<mkdir dir="${build.dir}"/>
<mkdir dir="${web.dir}/WEB-INF/lib"/>
<javac includeantruntime="false" destdir="${build.dir}" source="1.5" target="1.5">
<src path="${src.dir}"/>
<classpath refid="master-classpath"/>
</javac>
</target>

<target name="clean" description="Clean output directories">
<delete dir="war"/>
</target>

<target name="build-jar" depends="build">
<jar destfile="${web.dir}/lib/hello.jar"
basedir="${build.dir}"
includes="**"
excludes="**/Test.class">

<manifest>
<attribute name="Main-Class" value="hello.HelloWorld"/>
</manifest>

</jar>
</target>

</project>

从那里开始,就像从命令行构建项目一样简单

$  ant clean
$ ant build-jar

关于java - 如何从终端创建可执行 jar 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29882141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com