出于绝望lackideas我目前正在从eclipse插件中编译单个文件。诊断java编译器指示的“不正确的类路径”
到目前为止,我已经成功编译了一个编译单个.java文件的代码,该文件没有外部.class
(不在.jar
之内)依赖关系。
对于编译过程,我知道所有依赖项.class
文件在哪里,并且我使用-classpath
选项将该信息提供给编译器。
目前,我打电话编译如下:
String[] params = new String[]{
"-properties", propertiesFile,
"-g", "-preserveAllLocals",
"-classpath", classPath,
fileToCompile,
"-d", outputPath,
"-proc:none",
"-proceedOnError",
};
boolean result = BatchCompiler.compile(
params, new PrintWriter(outWriter), new PrintWriter(errWriter), null);
的变量:
- propertiesFile:存在,它包含的工作空间+不重复项目的设置(的合并以该顺序)。
- classPath:包含多个由“;”分隔的路径。 (这个有问题,见下)
- fileToCompile包含我想编译的文件的绝对路径。请注意,源文件夹中的这个文件是而不是。
- outputPath:项目的“bin”目录。它从IProject对象本身获取它。
您可能会发现其他选项here的含义。
classPath
给我一个错误。两个班在这个测试项目中存在: 这是它的内容(除掉大部分的.jar从本地Java包括减少后的大小:
"C:/Program Files (x86)/java/jre1.8.0_66/lib/resources.jar";"C:/Program Files (x86)/Java/jre1.8.0_66/lib/rt.jar";D:/Users/user/runtime-EclipseApplication/Tests/bin"
我用这些作为最后的尝试“包括”在classpath :
"D:/Users/user/runtime-EclipseApplication/Tests/bin"
"D\:\Users\user\runtime-EclipseApplication\Tests\bin"
"D\\:/Users/user/runtime-EclipseApplication/Tests/bin"
"D\\:\\Users\\user\\runtime-EclipseApplication\\Tests\\bin"
下面是它给出错误中的输出:
incorrect classpath: "D:/Users/user/runtime-EclipseApplication/Tests/bin"
----------
1. ERROR in D:\Users\user\runtime-EclipseApplication\.metadata\.plugins\myplugin\tmp\sources\Test2.java (at line 3)
public class Test2 extends Test{
^^^^^^^^
Test cannot be resolved to a type
我可以在自己的代码断言,只是之前的编译器叫:
- 该类路径目录存在
- 那测试。类是在该目录中
- 我使用的是默认的包在代码执行
的时候我在做什么错在这里?为什么将它分类到不正确的类路径中?
我使用org.eclipse.jdt.core(v.3.10.2)依赖关系,我正在编译eclipse Luna(4.4),这是我希望插件支持的最低版本。
由提出的错误,我可以猜测,你正在分别编译每个文件,在你的具体情况下'Test2'类正在'Test'类之前编译,因此你的错误**或**你正在编译类单独而不是一次全部。 **请记住,只是一个猜测** –
@JorgeCampos我正在编译每个类别,正如你所提到的,但Test2正在编译后测试。我还提到“我可以断言**类路径目录存在**和** Test.class在该目录** [...]”中。你提到的并不能解释**“不正确的类路径”**警告,尽管:(我认为这是它找不到Test.class的根本原因 – brunoais