代码之家  ›  专栏  ›  技术社区  ›  Adam Crume

从JAVA运行Ant时设置JAVA_HOME

  •  5
  • Adam Crume  · 技术社区  · 17 年前

    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),但这也不管用。有没有一种不启动单独流程的方法?

    5 回复  |  直到 17 年前
        1
  •  6
  •   Konstantin Tarashchanskiy    14 年前

    fork="yes" ? 如果不是的话,那么什么都不重要 java.home 属性设置为;ant将尝试调用javac Main 方法,从错误中可以看出,它是JRE,而不是JDK。

    编辑 executable 属性设置为javac任务的完整路径 javac 二进制和加法 compiler="extJavac" 完成任务。

        2
  •  0
  •   Maurice Perry    17 年前

    反斜杠不应该加倍吗?

    p.setProperty("java.home", "C:\\Program Files\\Java\\jdk1.6.0_04");
    
        3
  •  0
  •   Real Red.    17 年前

    您是否正确设置了环境变量JAVA\u HOME和ANT\u HOME?如果您是通过代码进行设置,那么它应该可以工作。

    您的问题似乎是环境中不存在%JAVA\u HOME%\bin。但路径是可变的。

        4
  •  0
  •   ricosrealm    13 年前

    另一种方法是将“tools.jar”添加到类路径中。javac编译器包含在这个jar中。

        5
  •  0
  •   Mangesh Jadhav    12 年前