2016-08-03 21 views
0

所以我試着開始在sublime上編譯和運行java,並且如果程序包沒有定義,它工作正常。在Sublime Text上運行Java時出錯[OSX]

此編譯和運行:

public class Tester 
{ 
    public static void main(String[] args) 
    { 
     System.out.println("this is a test."); 
    } 
} 

但是,如果我添加了一個包:

package test; 

public class Tester 
{ 
    public static void main(String[] args) 
    { 
     System.out.println("this is a test."); 
    } 
} 

我得到這個錯誤

Error: Could not find or load main class Tester 
[Finished in 6.8s with exit code 1] 
[cmd: ['javac "Tester.java" && java "Tester"']] 
[dir: /Users/ph/Documents/JAVA/test] 
[path: /usr/bin:/bin:/usr/sbin:/sbin] 

任何想法,爲什麼會出現這種情況或如何修理它?

+1

我認爲,因爲您添加了一個包,您將不得不創建一個名爲test的文件夾,然後將Tester.java放入其中,然後在測試文件夾外運行它。 java test.Tester運行它 – Yan

+0

是的,這是如何結構化,它總是在一個名爲'測試'的文件夾中,這就是爲什麼我添加了軟件包但只編譯沒有它,如果我complie它並從終端運行它只是工作精細。 – penHolder

回答

1
  1. [CMD:[ '的javac 「Tester.java」 & &的java 「測試」']]
  2. [DIR:/用戶/ PH /文檔/ JAVA /測試]

卓異文本正試圖在名爲「test」(參見#2)的目錄中編譯程序,該目錄是程序包名稱。它正在該目錄中查找名爲「Tester.java」的文件(請參閱#1),但由於「Tester.java」位於當前目錄(「JAVA」)內部,因此它不存在。

在編譯包中的Java文件時,文件需要位於反映包層次結構的目錄結構中。因此,您需要將文件移動到與其包含的軟件包相對應的目錄中。例如,example.utils.letters包中的類「A」必須存在於路徑../example/utils/letters/中A.java

創建文件夾「JAVA/test」並將Tester.java移動到那裏,然後運行它。

+0

感謝回答,但我知道如何組織文件,這就是文件的位置,這就是爲什麼我問,因爲我不知道爲什麼崇高如果它是在同一目錄中找不到主類,實際上,當我從終端編譯並運行它正常工作。 – penHolder

相關問題