2016-02-21 48 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 < - 沒有結束報價
這工作。我不記得,如果我做了其他任何事情,但它的工作原理是這樣的,無論它是否有空格。

我仍然想知道是什麼導致使用引號的第一個元素之間的不一致,但我的元素不能使用任何引號。

相關問題