Eclipse找不到OptaPlanner的类DefaultSolver并抛出ClassNotFoundException

Eclipse找不到OptaPlanner的类DefaultSolver并抛出ClassNotFoundException,eclipse,classpath,optaplanner,Eclipse,Classpath,Optaplanner,大家好,我正在使用optaplanner构建一个程序,所有的东西似乎都导入了,工作正常,但是当我运行和调试代码时,我得到了一个ClassNotFoundException org.optaplanner.core.impl.solver.DefaultSolver。我相信我已经正确地导入了所有的jar文件,但是为了确定,DefaultSolver类在哪个jar文件中 作为后续行动,我不断得到提示编辑源查找路径。运行SolverConfig.buildSolver第156行后会发生这种情况:Def

大家好,我正在使用optaplanner构建一个程序,所有的东西似乎都导入了,工作正常,但是当我运行和调试代码时,我得到了一个ClassNotFoundException org.optaplanner.core.impl.solver.DefaultSolver。我相信我已经正确地导入了所有的jar文件,但是为了确定,DefaultSolver类在哪个jar文件中

作为后续行动,我不断得到提示编辑源查找路径。运行SolverConfig.buildSolver第156行后会发生这种情况:DefaultSolver=new DefaultSolver;我正在运行OptaPlanner 6.1.0.Final。

类SolverConfig和类DefaultSolver都在jar OptaPlanner core-*.jar中

所以这没有意义:如果jar在类路径中,它应该找到DefaultSolver。如果jar不在类路径中,它甚至不应该找到SolverConfig。您所看到的永远不会发生在正常的类路径中


你在使用OSGi、JBoss模块、jigsaw、Karaff或其他类加载魔法吗?

发现了问题,我意识到我已经将示例jar文件导入了我的构建路径,并且在我处理示例时,曾经从示例jar文件导入了一个类。重新阅读该手册时,我看到它明确表示不要导入示例jar文件,因此我对此不予理睬,并很快找到了罪魁祸首。谢谢你的帮助。

这正是我完全困惑的地方。我有用于eclipse的JBoss加载项,这不好吗?除了删除所有导入的JAR并重新导入它们之外,还有没有其他方法可以完全重置所有类路径信息?谢谢你的帮助!JBoss插件应该很好。尝试调试并执行SolverConfig.getClass.getPackage.get。。。为了找出所用jar的实际位置,我试着这样做,并在提示我输入jar文件时手动更改源代码。我还收到一条错误消息源附件不包含Throwable.classI的源文件通过链接到jre1.8文件夹中的src.zip文件夹修复了Throwable.class错误。但是仍然无法让Eclipse找到DefaultSolver。直接从一个干净的环境开始,在Eclipse中导入一个exist maven项目并选择pom.xml文件。有关说明,请参阅文档。这已经被证明是有效的。很有趣。感谢您分享原因和解决方案:但我仍然不明白这会导致错误消息。我想我说得太快了。删除示例jar文件让我更进一步,我似乎得到了与以前相同的症状,但有以下输出消息:17:03:19.002[main]INFO o.d.c.k.b.impl.KieRepositoryImpl-KieModule被添加:MemoryKieModule[ReleaseId=org.default:artifact:1.0.0-SNAPSHOT]17:03:19.128[main]DEBUG o.drools.core.impl.KnowledgeBaseImpl-在PHREAK模式下启动引擎代码似乎也在可能的移动中循环,因为它正在启动,但规划实体的部分输出为null17:03:19.471[main]DEBUG o.o.c.i.c.DefaultConstructionHeuristicPhase-CH步骤0,花费的时间226,得分0硬/0软,选择的移动计数101,选择的移动2014-04-11_B@null=>导频号:0。我以前从未使用过Maven,现在我正在努力学习它是如何工作的。我创建了一个新的maven项目,将我的类从旧的java项目转移过来,并导入了我认为是依赖项的所有jar文件。这样可以吗?或者我应该把所有东西都作为java项目,然后将optaplanner作为现有的maven项目导入吗?我认为这与这个问题无关。至于如何在eclipse中设置它,请参阅docs第1章。我不熟悉使用Maven,设置它的最佳方法是什么?将我的代码放在java项目中,并将来自optaplanner源代码的类导入到它自己的独立maven项目中?还是使用maven作为我自己的代码来?不确定这是否与此问题有关,但我遇到了Java反射问题,特别是在org.optaplanner.core.config.util.ConfigUtils,当代码试图返回我的move和move筛选器类的新实例时。错误表明找不到附加的源。