2012-10-07 86 views
0

我有一個包含D:\ProjectGsc\中的一些類的軟件包。包根文件夾被稱爲gsc幷包含三個子目錄,即util,coremodules。裏面的每個人都是一些文件,並在core裏面有一個名爲gsc.class的文件。除此之外,gsc文件夾中還有一個文件夾res,其中包含我的程序包類中的JFrame和JDialog所使用的一些圖像。我設法使用-classpath \projectgsc來編譯所有內容,並且由於代碼已被調試,所有內容都可以順利編譯。但我根本無法運行它。我嘗試java gsc -classpath \projectgsc,而我在D:\ProjetctGsc\gsc\core\裏面,但是它在主線程中給我例外(主要的語法肯定是正確的)java.lang.NoClassDefFoundError: gsc (wrong name: gsc/core/gsc)。是因爲我的班級的名字是gsc包內gsc.core編譯軟件包不運行

在此先感謝! (順便說一句,SO不允許我提出「運行時類路徑問題」的問題,所以這是我可以想出的最好的標題,隨時編輯它)

回答

3

是的,運行一個名爲gsc的類Java命名約定,順便說一句)在一個封裝gsc.core(益 - 包含類名包名;混亂),你會寫

java -classpath d:\ProjectGsc gsc.core.gsc 

但你必須編譯它,讓你有一個目錄結構!

d:\ProjectGsc 
      \gsc 
       \core 
         \gsc.class 

你會得到這個自動如果使用-d選項的javac:(相應調整,當然)

javac -d d:\ProjectGsc *.java 

你可能會發現,如果你是新來的Java,使用它處理所有的IDE這對你來說會讓你的生活更輕鬆。

+0

我知道我違反命名約定,我打算有時更改名稱,我只是想檢查這是否工作。謝謝你會嘗試一下! :) –

+0

@Spiritios:我會敦促你修復你的代碼,以便儘早遵循約定。除了其他任何事情,任何時候你用非常規的名字提出問題,都會讓人們更難以遵循代碼。 –

+0

好吧,它可以工作,現在我可以再問你一件事,因爲我對classpaths很陌生:當把它做成一個Jar時,指定一個類路徑就好了,就像'jar ... parameters ... -classpath \ projectgsc' ?它會在任何地方運行良好,否則我會有任何位置依賴性? –