JAVA: 将所有依赖的jar 添加到-cp 后,仍然报错
JAVA: After adding all dependent jars to -cp, still getting errors
我正在使用 Lucene 开发一个项目(在 Linux),在添加所有外部 jar 以构建路径后,它在 Eclipse 中工作得很好。但是,当我尝试手动编译它们时出现此错误:
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/lucene/analysis/standard/StandardAnalyzer
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
at java.lang.Class.getMethod0(Class.java:3018)
at java.lang.Class.getMethod(Class.java:1784)
at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
这是我在 Eclipse 中使用的外部 jar:
我已经尝试过这些:
(java -cp "jar1:jar2..." class-内置eclipse)
java -cp "../../lucene-4.0.0/core/lucene-core-4.0.0.jar:../../lucene-4.0.0/queryparser/lucene-queryparser-4.0.0.jar:../../lucene-4.0.0/queries/lucene-queries-4.0.0.jar:../../lucene-4.0.0/analysis/common:../../IK Analyzer 2012FF_hf1/IKAnalyzer2012FF_u1.jar:." MyIndex
(java -cp jar1:jar2...:[=31=] class-内置eclipse)
java -cp ../../lucene-4.0.0/core/lucene-core-4.0.0.jar:../../lucene-4.0.0/queryparser/lucene-queryparser-4.0.0.jar:../../lucene-4.0.0/queries/lucene-queries-4.0.0.jar:../../lucene-4.0.0/analysis/common:"../../IK Analyzer 2012FF_hf1/IKAnalyzer2012FF_u1.jar":. MyIndex
和(将依赖的 jar 移动到与 class 文件相同的文件夹)
java -cp . MyIndex
将依赖项(你的 jar 文件)移动到一个文件夹中(比如 lib
),然后你可以使用类似
的东西
java -cp "lib/*":. MyIndex
我正在使用 Lucene 开发一个项目(在 Linux),在添加所有外部 jar 以构建路径后,它在 Eclipse 中工作得很好。但是,当我尝试手动编译它们时出现此错误:
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/lucene/analysis/standard/StandardAnalyzer
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
at java.lang.Class.getMethod0(Class.java:3018)
at java.lang.Class.getMethod(Class.java:1784)
at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
这是我在 Eclipse 中使用的外部 jar:
我已经尝试过这些:
(java -cp "jar1:jar2..." class-内置eclipse)
java -cp "../../lucene-4.0.0/core/lucene-core-4.0.0.jar:../../lucene-4.0.0/queryparser/lucene-queryparser-4.0.0.jar:../../lucene-4.0.0/queries/lucene-queries-4.0.0.jar:../../lucene-4.0.0/analysis/common:../../IK Analyzer 2012FF_hf1/IKAnalyzer2012FF_u1.jar:." MyIndex
(java -cp jar1:jar2...:[=31=] class-内置eclipse)
java -cp ../../lucene-4.0.0/core/lucene-core-4.0.0.jar:../../lucene-4.0.0/queryparser/lucene-queryparser-4.0.0.jar:../../lucene-4.0.0/queries/lucene-queries-4.0.0.jar:../../lucene-4.0.0/analysis/common:"../../IK Analyzer 2012FF_hf1/IKAnalyzer2012FF_u1.jar":. MyIndex
和(将依赖的 jar 移动到与 class 文件相同的文件夹)
java -cp . MyIndex
将依赖项(你的 jar 文件)移动到一个文件夹中(比如 lib
),然后你可以使用类似
java -cp "lib/*":. MyIndex