1

我正在尝试在我的 java 应用程序中编译 java 文件,但是它们需要使用不在类路径中的其他类进行编译。因此,在我的代码中,我输入了如下选项:

Iterable options = Arrays.asList("-classpath \"/path/to/some/classes\"");

然后我像这样编译:

JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, null, options, null, compilationUnits1);

我得到的确切错误是:

java.lang.IllegalArgumentException:无效标志:-classpath "/path/to/some/classes"

我是否必须以另一种方式将其他库添加到类路径?

4

2 回答 2

8

我很确定它必须在两个单独的字符串中:

Iterable<String> options = Arrays.asList("-classpath", "/path/to/some/classes");
于 2013-09-17T10:53:24.360 回答
0

如果您想包含多个类路径,例如 src、test 或第三方 jar 等,请使用分号分隔它们

List<String> opt = Arrays.asList("-cp",
                "/path/to/src;/path/to/test;path-to-ext-jarfile.jar");

注意:不要将它们作为单独的元素添加到 List 中,否则会再次引发 IllegalArgumentException Invalid 标志。

于 2022-01-03T14:49:30.977 回答