3

我想在 Eclipse 中设置一个外部工具,通过javac直接调用来对项目中的类进行一些自定义编译。为此,我需要传递参数javacclasspath以便它知道去哪里寻找依赖项。

是否有可能,例如在外部工具配置对话框中,告诉 Eclipse 将所有引用的库和源目录的列表传递给我的外部工具,最好以分号分隔的方式javac期望?有一个名为 的变量project_classpath,但不幸的是,它返回 Eclipse 生成的编译类的输出目录,而不是依赖目录。

我认为 Eclipse 应该在某个地方随时提供这些信息,因为它可能需要它来调用javac.

还有其他地方可以找到这些信息吗?不幸的是,.classpath与该项目关联的文件包含对 Eclipse 内部定义的库的各种神秘引用,而不是简单的路径名。

4

1 回答 1

0

我使用最小的应用程序打印出 jsp 编译任务的类路径。根据需要进行调整

public class JspCompileArgs {
    static public void main(String [] args){
        StringBuilder sb=new StringBuilder();
        sb.append("-war.path \"${resource_loc}/src/main/webapp\"\n");
        sb.append("-keepgenerated true\n");
        sb.append("-compileToDir /tmp/jsp_compile\n");
        sb.append("-additional.classpath \"");
        ClassLoader cl = ClassLoader.getSystemClassLoader();
        URL[] urls = ((URLClassLoader)cl).getURLs();
        for(URL url: urls){
            sb.append(url.getFile());
            sb.append(";");
        }
        sb.append('"');
        System.out.println(sb);
    }
}
于 2013-01-09T10:44:24.397 回答