[英]Problem with running java project from a command line
我有一個帶有兩個類和一個外部庫的JavaFX項目。 當我從IDE(IntelliJ Idea)運行它時,一切正常。 但是當我使用命令從命令行運行它時:
java Main
該程序啟動,但是當我嘗試使用與外部庫關聯的功能時,我有一個例外:
Exception in thread "Thread-4" java.lang.NoClassDefFoundError: com/google/gson/Gson
為什么通過IDE運行它時一切正常,而通過控制台運行它卻看不到庫Gson?
最常見的原因是創建jar時未導出Gson
庫。
當IDE運行您的代碼時,可以找到它。 但是,當將其導出到JAR且其中不包含相關的依賴項時,您會收到此錯誤。
當您從諸如IntelliJ或eclpse之類的IDE運行程序時,它可能會自動包含外部jar,因為它取決於您的設置,因此它是您自己的類路徑。
如果要從命令行運行它,則需要使用-classpath
參數將gson jar添加到您的類路徑中。
java -classpath external-library.jar Main
參考:
Windows- https://docs.oracle.com/javase/8/docs/technotes/tools/windows/classpath.html
Unix- https://docs.oracle.com/javase/8/docs/technotes/tools/unix/classpath.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.