![](/img/trans.png)
[英]How do I pass a file as argument to my Java application created using JAR Bundler?
[英]How do I pass an additional jar do my java command when running application?
我有一個Java gradle projectA,它引用了另一個以lib構建的java gradle projectB。
我的gradle構建配置似乎很好,因為我可以導入和使用其他項目中的類,並且可以對其進行編譯。 但是,當我嘗試從命令行運行應用程序時,出現錯誤...
線程“主”中的異常java.lang.NoClassDefFoundError:DawCLI.main(DawCLI.java:17)處的dawcore / SamplerInstrument導致原因:java.net.URLClassLoader.findClass(URLClassLoader.java處的java.lang.ClassNotFoundException:dawcore.SamplerInstrument。 :382)在java.lang.ClassLoader.loadClass(ClassLoader.java:424)在sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:349)在java.lang.ClassLoader.loadClass(ClassLoader.java:357) ...還有1個
似乎在抱怨它無法在運行時加載jar中的類。 但是我不知道如何讓它成功加載那些類。
我當前不引用jar的運行命令如下。
/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/bin/java -ea -cp "build/classes/main/" DawCLI
運行此命令將產生最初提到的錯誤。
然后,我閱讀有關java -cp參數的文檔。 它說提供額外的類路徑目錄,用分號分隔它們。
我經常將運行命令更新如下。
/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/bin/java -ea -cp "build/classes/main/;../DawCore/build/libs/DawCore.jar" DawCLI
這給了我以下錯誤。
錯誤:找不到或加載主類DawCLI
我的主要功能如下。
import dawcore.*;
public class DawCLI {
public static void main (String [] args) throws IOException {
SamplerInstrument samplerkick = new SamplerInstrument();
}
}
根據文檔,我似乎正確地做到了這一點,但是仍然出現錯誤。 任何對此的見解將不勝感激!
謝謝
解決方法是用冒號代替定界分號。 即使javadocs on -cp命令的第一行指示您應使用分號。
這可能是因為我在Linux上運行,並且這些文檔指示Windows。
https://docs.oracle.com/javase/7/docs/technotes/tools/windows/java.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.