
使用附加類別路徑選項呼叫「java -jar MyFile.jar」
在Java 中,有兩種方法執行JAR 檔案:使用-jar 選項或使用-cp 指定類路徑。但是,嘗試組合這兩個選項會導致錯誤。
使用 -jar 時,Java 虛擬機器 (JVM) 假定 JAR 檔案包含所有必要的相依性。因此,不建議使用 -cp 指定額外的類別路徑。
相反,有兩種替代方法:
方法1:將JAR 加到主清單
- 將所需的JAR 檔案複製到子資料夾,例如“libs”。
- 使用在構建JAR 之前在Ant 中執行任務:
1 2 3 4 5 | <code class = "xml" ><manifestclasspath property= "myprogram.manifest.classpath" jarfile= "MyProgram.jar" >
<classpath>
<fileset dir= "libs" includes= "*.jar" />
</classpath>
</manifestclasspath></code>
|
登入後複製
- 使用更新的清單創建JAR:
1 2 3 4 5 6 | <code class = "xml" ><jar destfile= "MyProgram.jar" basedir= "classes" >
<manifest>
<attribute name= "Main-Class" value= "main.Main" />
<attribute name= "Class-Path" value= "${myprogram.manifest.classpath}" />
</manifest>
</jar></code>
|
登入後複製
透過在清單中指定類別路徑, java -jar MyProgram.jar 將包含所有相依性。
方法2:使用-cp 指定類別路徑
- 在類別路徑中包含所有必需的JAR 檔案:
1 | java -cp 'MyProgram.jar:libs/*' main.Main
|
登入後複製
使用* 語法擴展以包含“libs”目錄中的所有JAR 檔案。
請記住,選擇 -jar 或 -cp 方法至關重要。兩者結合可能會導致類別路徑衝突和錯誤。
以上是如何執行具有附加相依性的 JAR 檔案:-jar 與 -cp?的詳細內容。更多資訊請關注PHP中文網其他相關文章!