2016-02-21 129 views
0

出于绝望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 :

  1. "D:/Users/user/runtime-EclipseApplication/Tests/bin"
  2. "D\:\Users\user\runtime-EclipseApplication\Tests\bin"
  3. "D\\:/Users/user/runtime-EclipseApplication/Tests/bin"
  4. "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 

我可以在自己的代码断言,只是之前的编译器叫:

  1. 该类路径目录存在
  2. 那测试。类是在该目录中
  3. 我使用的是默认的包在代码执行

的时候我在做什么错在这里?为什么将它分类到不正确的类路径中?

我使用org.eclipse.jdt.core(v.3.10.2)依赖关系,我正在编译eclipse Luna(4.4),这是我希望插件支持的最低版本。

+1

由提出的错误,我可以猜测,你正在分别编译每个文件,在你的具体情况下'Test2'类正在'Test'类之前编译,因此你的错误**或**你正在编译类单独而不是一次全部。 **请记住,只是一个猜测** –

+0

@JorgeCampos我正在编译每个类别,正如你所提到的,但Test2正在编译后测试。我还提到“我可以断言**类路径目录存在**和** Test.class在该目录** [...]”中。你提到的并不能解释**“不正确的类路径”**警告,尽管:(我认为这是它找不到Test.class的根本原因 – brunoais

回答

0

后解决这个日子里,不知何故...... "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 < - 没有结束报价
这工作。我不记得,如果我做了其他任何事情,但它的工作原理是这样的,无论它是否有空格。

我仍然想知道是什么导致使用引号的第一个元素之间的不一致,但我的元素不能使用任何引号。

相关问题