2012-08-15 185 views
20

我創建了一個Java項目來調用Web服務。它有一個主要的java文件和另一個類文件。 我已經使用HTTP客戶端的一些jar文件。
在Eclipse中運行良好。 我需要通過傳遞一些參數來在命令提示符下運行Java程序。
在命令提示符下我去了src文件夾包含主java和子類的java文件,獲得以下命令如何在命令提示符下運行Java程序

javac mainjava.java  

我收到以下錯誤

mainjava.java:14: cannot find symbol
symbol : class SubClass

這裏子類是我的另一個Java類用於調用Web服務的文件。

如何通過傳遞參數來運行程序?

+0

你是否設置了班級路徑? – Rocky 2012-08-15 08:00:12

+0

感謝大家的幫助,對我的工作很好..... – Vignesh 2012-08-20 09:03:26

回答

20

javac是Java編譯器運行代碼。 java是JVM和你用來執行Java程序的東西。您不執行.java文件,它們只是源文件。 大概有.jar地方(或含有.class文件的目錄),它在Eclipse構建它的產品:

 
java/src/com/mypackage/Main.java 
java/classes/com/mypackage/Main.class 
java/lib/mypackage.jar 

從目錄java執行:

java -cp lib/mypackage.jar Main arg1 arg2

+0

這是我的文件夾stucture webcall/src目錄/ main.java ---- webcall/src目錄/ Sub.java ------ webcall/extjarfiles/httpcore.jar ----- webcall/extjarfiles /httpclient.jar----- – Vignesh 2012-08-15 08:45:50

+0

是否有'webcall/classes'或'webclass \ lib'文件夾? – hmjd 2012-08-15 08:48:18

+0

我使用了javac -cp extjarfiles/AllJarFiles main.java ------它編譯成功但在運行項目時出錯 – Vignesh 2012-08-15 08:49:47

2

你可以使用javac *.java命令來編譯你所有的java源代碼。此外,您應該瞭解一些關於classpath的知識,因爲您應該爲成功編譯設置合適的類路徑(因爲您的IDE使用一些庫來構建WebService客戶端)。另外,我可以推薦你檢查你的IDE用於構建項目的命令。

+0

在我的IDE中使用這個命令來運行*****「C:\ Program Files \ Java \ jre6 \ bin \ javaw.exe」 - D Projects \ Eclipse Projects \ WebServiceCall \ bin; D:\ Projects \ Eclipse Projects \ WebServiceCall \ ExternalJarFiles \ httpcore-4.0.jar; D:\ Projects \ Eclipse Projects \ WebServiceCall \ ExternalJarFiles \ httpclient-4.0.jar; D:\ Projects \ Eclipse Projects \ WebServiceCall \ ExternalJarFiles \ commons-logging-1.1.jar; D:\ Projects \ Eclipse Projects \ WebServiceCall \ ExternalJarFiles \ gson-1.7.1.jar「WSCall.ServiceCall * *** – Vignesh 2012-08-15 08:08:52

+0

如果我在命令提示符下使用上述命令即可運行它。但我無法傳遞參數 – Vignesh 2012-08-15 08:10:47

+0

您可以嘗試在命令結尾添加參數。 – gkuzmin 2012-08-15 08:13:56

14

一個非常普遍的命令提示符下如何for Java是

javac mainjava.java 
java mainjava 

你會經常看到人們在

javac *.java 
java mainjava 

至於這可能發生,因爲路徑是從缺失的子類問題你的班級路徑,我相信-c標誌是用來設置。

+0

對於'javac * .java' +1,這也將編譯OP的SubClass.java源文件。 – martijno 2012-08-15 08:09:30

1

javac只編譯代碼。您需要使用java命令來運行代碼。錯誤是因爲你的類路徑不包含類子類當你試圖編譯它時。你需要將它們與-cp變量javac命令

java -cp classpath-entries mainjava arg1 arg2添加應以2個參數

1

所有你需要做的是:

  • 使用類路徑構建mainjava類(如果有的話)(可選)

    的javac *的.java [-cp 「wb.jar;」]

  • 創建清單。與內容txt文件是:

    主類:mainjava

  • 軟件包mainjava類的jar文件

    罐子立方英尺mainjava.jar Manifest.txt的* .class

然後你可以使用類路徑(可選)從cmd運行這個.jar文件併爲其添加參數。

java [-cp "wb.jar;"] mainjava arg0 arg1 

HTH。

相關問題