[英]How to Run a Java Class File from the Command Line that was Compiled by Eclipse? External Jar problems
我有一個在Eclipse中運行良好的項目。 該項目使用了許多外部罐子。 我的項目文件目錄有一個bin
和src
目錄,以及一個.classpath
和.project
文件。
從這個目錄,如果我執行:
java -cp bin com.brm.main.Demo2
我收到以下錯誤:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/lucene/sea
rch/Query
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2442)
at java.lang.Class.getMethod0(Class.java:2685)
at java.lang.Class.getMethod(Class.java:1620)
at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)
Caused by: java.lang.ClassNotFoundException: org.apache.lucene.search.Query
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 6 more
org / apache / lucene是一個外部jar。
您還需要在類路徑中包含其他依賴項,將classpath元素與;
在Windows上或:
在Linux上。
在Windows上:
java -cp bin;path\to\lucene.jar com.brm.main.Demo2
在Linux上:
java -cp bin:path/to/lucene.jar com.brm.main.Demo2
如果除了lucene和bin之外還有其他jar文件或目錄,那么你也必須添加它們。
如果您正在嘗試部署程序,更好的解決方案是使用Eclipse的“導出”向導導出Runnable JAR文件,該文件將引導您完成選擇主類並捆綁依賴項的步驟。 或者,更進一步,您可以使用ant或maven來構建項目並創建可部署的bundle。
怎么樣這樣: -
java -cp .;%CLASSPATH% com.brm.main.Demo2
看起來你的類路徑是無效的,因為找不到外部庫的.jars。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.