我想在Eclipse中设置一个外部工具,通过直接调用javac
对项目中的类进行一些自定义编译。为此,我需要将classpath
参数传递给javac
,以便它知道从哪里查找依赖项。
是否有可能,例如,在外部工具配置对话框中,告诉Eclipse将所有引用的库和源目录的列表传递给我的外部工具,最好是以javac
期望的分号分隔的方式?有一个名为project_classpath
的变量,但不幸的是,它返回由Eclipse生成的已编译类的输出目录,而不是依赖目录。
我认为Eclipse应该在某个地方随时提供这些信息,因为它自己调用javac
时可能需要这些信息。
有没有别的地方可以找到这个信息?不幸的是,与项目相关的.classpath
文件包含对Eclipse内部定义的库的各种隐蔽引用,而不是简单的路径名。
发布于 2013-01-09 10:44:24
我使用最小的应用程序打印出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);
}
}
https://stackoverflow.com/questions/12549718
复制