在Java 中,有兩種方法執行JAR 檔案:使用-jar 選項或使用-cp 指定類路徑。但是,嘗試組合這兩個選項會導致錯誤。
使用 -jar 時,Java 虛擬機器 (JVM) 假定 JAR 檔案包含所有必要的相依性。因此,不建議使用 -cp 指定額外的類別路徑。
相反,有兩種替代方法:
<code class="xml"><manifestclasspath property="myprogram.manifest.classpath" jarfile="MyProgram.jar"> <classpath> <fileset dir="libs" includes="*.jar" /> </classpath> </manifestclasspath></code>
<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 將包含所有相依性。
java -cp 'MyProgram.jar:libs/*' main.Main
使用* 語法擴展以包含“libs”目錄中的所有JAR 檔案。
請記住,選擇 -jar 或 -cp 方法至關重要。兩者結合可能會導致類別路徑衝突和錯誤。
以上是如何執行具有附加相依性的 JAR 檔案:-jar 與 -cp?的詳細內容。更多資訊請關注PHP中文網其他相關文章!