当前位置: 首页 > 面试题库 >

从Java运行Ant时设置JAVA_HOME

谭景福
2023-03-14
问题内容

原因很长很无聊,但是我需要运行一个Ant脚本来从Java 1.4应用程序编译Java 1.5代码。我一直收到此错误,但是:

BUILD FAILED

build.xml:16: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "C:\j2sdk1.4.2_16\jre"

在我的代码中,我有:

Project p = new Project();
p.setUserProperty("ant.file", buildFile.getAbsolutePath());
p.setProperty("java.home", "C:\Program Files\Java\jdk1.6.0_04");
p.fireBuildStarted();
p.init();
// so on and so forth

但它忽略了它。我也尝试过p.setUserProperty(String,String),但这也不能解决问题。有没有一种方法而无需启动单独的过程


问题答案:

您的buildfile中的javac任务有fork="yes"吗?如果不是,那么java.home属性设置为什么都无关紧要。ant会尝试Main在同一java进程中调用javac
方法,从您的错误来看,它是JRE,而不是JDK。

编辑
尝试将executableJavac任务的属性设置为javac二进制的完整路径,然后添加compiler="extJavac"到任务中。



 类似资料:
  • 问题内容: 这是我到目前为止的内容: 但是我猜这个错误: 我尝试使用以下方法指定项目: 但是没有运气。 指定的ant文件是正确的,因为它可以从命令行正常运行。 更新 经过更多搜索后,我到达了这里:http : //onjava.com/pub/a/onjava/2002/07/24/antauto.html?page=1 这是一个很棒的教程。 这是我在下面的答案中看到代码之前得到的代码: 但是由于

  • 上游集群支持以下运行时配置: 主动健康检查 health_check.min_interval 健康检查间隔的最小值。默认值为0。运行状况检查间隔将介于min_interval和max_interval之间。 health_check.max_interval 健康检查间隔的最大值。默认值是MAX_INT。健康检查间隔将在min_interval和max_interval之间。 health_ch

  • HTTP连接管理器支持以下运行时设置: tracing.client_enabled 如果设置了x-client-trace-id头部,请求将被强制跟踪的百分比。默认为100。 tracing.global_enabled 在所有其他检查(强制跟踪,采样等)生效之后,将被跟踪的请求百分比。默认为100。 tracing.random_sampling 被随机跟踪的请求万分比。浏览此处获取更多信息。

  • 问题内容: 使用IKVM时,如何在运行时设置CLASSPATH变量? 我一直在尝试使用以下方法: 我正在调用的类需要在类路径中使用配置文件才能工作-而且我不断收到错误消息,似乎表明它没有获得设置。 我尝试添加变量的方式不正确吗? 问题答案: 我试图做同样的事情。我将一些jar文件编译为.Net dll,但是其中一些(第3方)jar文件正试图从java类路径中加载其配置文件。 我通过为ikvmc工具

  • 我希望在使用运行测试时,控制台尽可能安静,除非出现问题。再说一次,当我在Eclipse中编写测试时(换句话说,当我在Eclipse中运行单个junit测试时),它们可以非常详细。 因此,当我使用surefire运行所有测试时,我需要一种方法来拥有不同的log4j/logback设置,而不是在Eclipse中一个接一个地运行它们。有没有办法做到这一点?

  • 可以从jar文件中运行ant脚本吗? 目前,我有一个build.xml,它调用一些java代码,这些代码在一个jar文件中。然后它做一些进一步的蚂蚁处理。 当我从Eclipse导出jar文件时,我可以选择添加构建。xml文件到jar,所以我想知道我是否可以直接从jar运行ant脚本,这样我只需要给人们jar文件,而不是ant脚本。