我正在使用JavaCompiler
ofjavax.tools
来编译一些 java 代码,并且我试图在我的文件中使用通配符classpath
以包含所有.jar
文件,但我失败了。
这是我的代码:
String classpath = "C:\tomcat6\webapps\myapp/WEB-INF/lib/javax.ws.rs-api-2.0-m10.jar;"
+ "C:\\tomcat6\\webapps\\myapp/WEB-INF/lib/javax.persistence-2.1.0.jar";
Iterable<String> options = Arrays.asList("-d", classesBaseDir,
"-classpath", classpath);
JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager,
diagnostics, options, null, file);
boolean result = task.call();
上面的代码工作得很好。但是当我试图classpath
改变
String classpath = "C:\\tomcat6\\webapps\\myapp/WEB-INF/lib/*";
它失败了
compiler.err.doesnt.exist|package javax.ws.rs does not exist
...
symbol: class GET
location: class com.my.oasis.resources.TestClass
09/04/2014 14:27:09:030 | COMPILER_DIAGNOSTIC | compileResource() - compiler.err.cant.resolve.location|cannot find symbol
...
我还尝试了以下更改
String classpath = "\"C:\\tomcat6\\webapps\\myapp/WEB-INF/lib/*\"";
String classpath = "'C:\\tomcat6\\webapps\\myapp/WEB-INF/lib/*'";
但他们都没有工作。有任何想法吗?
谢谢
注意:路径包含斜杠和反斜杠的原因是因为我的程序在运行时识别环境并自动补全路径。
编辑:我正在使用 tomcat 6 和 java 1.7.0_21