2009-10-09 55 views
0

如何爲不同的文件創建Java包?我已經嘗試過 以下。我做錯了什麼?什麼是 正確的程序?如何爲不同的文件創建一個包?

第一個文件是:

package dil; 
public class Hello 
{ 
    Support sp=new Support(); 
    int i=sp.tin(); 
    public void man() 
    { 
     System.out.println(i); 
    } 
} 

第二個文件是:

package dil; 
class Support 
{ 
    public int tin() 
    { 
     return 3; 
    } 
} 

現在當我編譯hello.java它顯示了這些錯誤:

Hello:4:cannot find symbol 
symbol: class Support 
location: class dil.hello 
Support sp=new Support(); 
      ^
Hello:4:cannot find symbol 
symbol: class Support 
location: class dil.hello 
Support sp=new Support(); 
^ 

在哪裏問題以及如何將這兩個 這些文件放在一個包中?

這些文件位於c:\ src中。

+0

東西不對。你會給這兩個文件使用你的文件夾結構嗎?以及如何編譯它(包括編譯的當前目錄)。 – NawaMan 2009-10-09 11:43:42

回答

1

假設UNIX/Linux的路徑名,UNIX外殼等,需要具備以下文件結構:

/some/where/dil 
/some/where/dil/hello.java 
/some/where/dil/Support.java 

然後設置$CLASSPATH/some/where,並使用命令

cd /some/where 
javac dil/*.java 

和運行編譯使用

java dil.hello 

或者,您可以tel l javajavac-cp命令行選項一起使用的類路徑。

你還應該解決以下錯誤代碼:

  1. 改變「你好」類爲「Hello」的名稱,並重新命名源文件相匹配。嚴格地說,這不是一個錯誤,但它嚴重違反了命名Java類的標準。
  2. 您聲明一個成員爲「十」,但將其稱爲「錫」。修復一個或另一個。
  3. 「hello」類中的入口點方法應該被稱爲「main」而不是「man」,並且應該有一個簽名public static void main(String[] arg)。如果您不修復這些代碼,則會編譯代碼,但java命令不會找到入口點並會失敗。
+0

它仍然給出相同的錯誤。 – Pranjut 2009-10-09 14:41:17

+0

文件名應該是大寫字母「H」的Hello.java。 – moxn 2009-10-20 09:50:51

+0

是的......這就是現在的問題!但是如果你看問題的原始版本,那麼類「hello」就在一個名爲「Hello.java」的文件中。我放棄。有人只是沒有得到它... – 2009-10-20 11:52:34

0

我發現有些事情你必須檢查:)

  • 你好以小寫
  • 你好呼籲sp.ten(開始代替SP .tin()
1

雖然Support類不是公開的,但它不是問題因爲兩個班級共享相同的包。我的猜測是你沒有將兩個源文件根據它們的包名放到一個目錄中,並從hello.java所在的當前目錄中調用javac編譯器。

如果一個類在a.b包中,這意味着項目結構應該包含一個包含yourclass.java的文件夾./a/b。

在你的情況下,嘗試創建一個名爲./dil的文件夾,將你的源文件放入其中,並從其父文件夾中調用javac。

+0

其實我已經把這兩個文件放在同一個目錄下,編輯 the ten()並使其成爲tin(),但它仍然不能正常工作.... – Pranjut 2009-10-09 12:16:38

+0

關鍵在於javac需要一個類路徑指向根包文件夾。 (例如:如果源代碼位於/ tmp/dil中,則從/ tmp運行編譯器作爲源路徑。) – rsp 2009-10-09 12:38:57

0

Supportpublic。公開並重試。

+0

它不必公開,因爲類是在同一個包。 – Carlos 2009-10-25 10:46:14

0

我建議你嘗試使用Netbeans,Eclipse或IntelliJ CE等免費IDE之一。這將幫助你開始編碼,而不是一切困難的方式。

順便說一句:這些IDE可以快速解決大多數常見問題,所以它們不僅給你提供了錯誤,還給你選項來解決它們併爲你做。

相關問題