我有一个由7到10个java文件组成的项目,依赖于5个jar文件。该项目在IntelliJ项目2017.1版本中进行管理。
现在我想运行一个带有项目主函数的java类。在本地计算机的命令行中,我使用脚本运行该类:
/project/out/path> java retrieve_result
我将脚本更正为How to run java program in command prompt,created by intellij 。
注意:在retrieve_result
类中,存在对其他java和jar文件的依赖性。
错误如下所示:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/lucene/store/Directory
at HW2MainLucene.ReadIndex(HW2MainLucene.java:69)
at HW2MainLucene.main(HW2MainLucene.java:23)
Caused by: java.lang.ClassNotFoundException: org.apache.lucene.store.Directory
at jdk.internal.loader.BuiltinClassLoader.loadClass(java.base@9-internal/BuiltinClassLoader.java:366)
at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(java.base@9-internal/ClassLoaders.java:184)
at java.lang.ClassLoader.loadClass(java.base@9-internal/ClassLoader.java:419)
... 2 more
据我所知,这个错误是因为编译器无法找到jar文件。但是在IntelliJ项目中,它已经配置好了。
如何配置编译器以获取可用的程序?
答案 0 :(得分:0)
“已配置”对您意味着什么?
错误表明您尚未在IntelliJ中正确地将这些JAR添加到CLASSPATH中。
我假设您没有使用Maven。您的项目中有/ lib文件夹,与/ src文件夹相同,包含您的应用程序所需的JAR。
打开项目结构(Crtl + Alt + Shift + S),单击Libraries,然后将/ lib目录添加为源存档目录。这应该将它找到的所有JAR放在CLASSPATH中。
在IDE外部运行的打包将是另一回事。我预测一旦你尝试在IntelliJ之外部署就会遇到问题。