运行 在 java 中使用 ant
Running use ant in java
编译和创建JAR文件都成功。
运行 java 通过 ant 文件的文件正在产生错误。
<project>
<target name="clean">
<delete dir="build"/>
</target>
<target name="compile">
<mkdir dir="build/classes"/>
<javac srcdir="src" destdir="build/classes"/>
</target>
<target name="jar">
<mkdir dir="build/jar"/>
<jar destfile="build/jar/Helloworld" basedir="build/classes">
<manifest>
<attribute name="Main-Class" value="Helloworld"/>
</manifest>
</jar>
</target>
<target name="run">
<java jar="build/jar/Helloworld" fork="true"/>
</target>
</project>
构建文件:C:\Workspace\anttest\build.xml
run:
[java] java.lang.NoClassDefFoundError: Helloworld
[java] Caused by: java.lang.ClassNotFoundException: Helloworld
[java] at java.net.URLClassLoader.run(URLClassLoader.java:202)
[java] at java.security.AccessController.doPrivileged(Native Method)
[java] at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
[java] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
[java] Could not find the main class: Helloworld. Program will exit.
[java] Exception in thread "main"
[java] Java Result: 1
构建成功
您的 JAR 文件将不包含 HelloWorld
class。
Ant 默认忽略 java 进程中的 return 代码,请参阅:https://ant.apache.org/manual/Tasks/java.html#failonerror 您可以添加 failonerror="true" 属性来更改此行为,即:
尝试改变
<target name="run">
<java jar="build/jar/Helloworld" fork="true"/>
</target>
至
<target name="run">
<java jar="build/jar/Helloworld" failonerror="true" fork="true"/>
</target>
编译和创建JAR文件都成功。
运行 java 通过 ant 文件的文件正在产生错误。
<project>
<target name="clean">
<delete dir="build"/>
</target>
<target name="compile">
<mkdir dir="build/classes"/>
<javac srcdir="src" destdir="build/classes"/>
</target>
<target name="jar">
<mkdir dir="build/jar"/>
<jar destfile="build/jar/Helloworld" basedir="build/classes">
<manifest>
<attribute name="Main-Class" value="Helloworld"/>
</manifest>
</jar>
</target>
<target name="run">
<java jar="build/jar/Helloworld" fork="true"/>
</target>
</project>
构建文件:C:\Workspace\anttest\build.xml
run:
[java] java.lang.NoClassDefFoundError: Helloworld
[java] Caused by: java.lang.ClassNotFoundException: Helloworld
[java] at java.net.URLClassLoader.run(URLClassLoader.java:202)
[java] at java.security.AccessController.doPrivileged(Native Method)
[java] at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
[java] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
[java] Could not find the main class: Helloworld. Program will exit.
[java] Exception in thread "main"
[java] Java Result: 1
构建成功
您的 JAR 文件将不包含 HelloWorld
class。
Ant 默认忽略 java 进程中的 return 代码,请参阅:https://ant.apache.org/manual/Tasks/java.html#failonerror 您可以添加 failonerror="true" 属性来更改此行为,即:
尝试改变
<target name="run">
<java jar="build/jar/Helloworld" fork="true"/>
</target>
至
<target name="run">
<java jar="build/jar/Helloworld" failonerror="true" fork="true"/>
</target>