【发布时间】:2025-12-02 05:05:02
【问题描述】:
我有一个 build.xml 来为我的应用程序生成 Jar 文件。
我正在尝试直接调用build.xml,如下所示
import java.io.IOException;
public class RunBuild {
public static void main(String args[]) throws IOException {
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("/home/sai/Jan5WS/AntTest/build.xml");
}
}
它没有抛出任何异常,但它没有生成 jar 文件。
我目前使用的是 ubuntu 12 和 ant 8.1 版本
谁能告诉我有什么问题吗??
谢谢
编辑部分
我试过这样运行
public static void main(String args[]) throws IOException {
File buildFile = new File("build.xml", "/home/sai/Jan5WS/AntTest");
Project p = new Project();
p.setUserProperty("ant.file", buildFile.getAbsolutePath());
p.init();
ProjectHelper helper = ProjectHelper.getProjectHelper();
p.addReference("ant.projectHelper", helper);
helper.parse(p, buildFile);
p.executeTarget(p.getDefaultTarget());
}
但它的投掷
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/tools/ant/launch/AntMain
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.apache.tools.ant.Project.initProperties(Project.java:313)
at org.apache.tools.ant.Project.init(Project.java:300)
at RunBuild.main(RunBuild.java:15)
【问题讨论】:
-
你是如何运行代码的?您的类路径可能没有所有库。日志中有 ClassNotFoundException 吗?