2017-07-15 212 views
1
  1. 我需要在入口點類之一中擁有主類嗎?
  2. 我嘗試添加主類,但是當我試圖通過它的說法主類無法加載或找不到。

這裏是我使用的命令:如何通過執行shell將參數傳遞給Jenkins作業

jar -xvf jarname.jar 
java -cp /path/filename.class $JOB_URL $USER $PASSWORD 

路徑名稱是文件名,其中入口點和具有main()方法。

回答

1

1)我是否需要在入口點類中的一個主類?

是的。並通過參數不應該要求解壓縮JAR檔案:詳見「How do I pass parameters to a jar file at the time of execution?

java -jar jarname.jar param1 param2 

但是,這需要一個MANIFEST file inside the jar which reference the main class

Main-Class: MyPackage.MyClass 

或者你可以使用 - 他「jar e」選項(如果您的罐子沒有Manifest.txt文件)「」

如果入口點的類名是在一個包就可以使用(點)字符作爲分隔符。
例如,如果Main.class是在一個名爲foo包的入口點可以通過以下方式來指定:

jar cfe Main.jar foo.Main foo/Main.class 

在這兩種情況下,你就不必解壓罐子。

+0

我們需要手動添加Manifest.mf嗎? –

+0

@RockyHai是的,如https://docs.oracle.com/javase/tutorial/deployment/jar/appman.html所述。但是,如答案的最後部分所述,您還可以使用'jar cfe'命令測試您的jar,而不假設存在'Manifest'。 – VonC

+0

目前我沒有添加Manifest.mf,因此我可以使用jar cfe jarname.jar path.entryclass $ param。 –

相關問題