簡體   English   中英

如何從Eclipse編譯的命令行運行Java類文件?外部Jar問題

[英]How to Run a Java Class File from the Command Line that was Compiled by Eclipse? External Jar problems

我有一個在Eclipse中運行良好的項目。 該項目使用了許多外部罐子。 我的項目文件目錄有一個binsrc目錄,以及一個.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM