如果我没有提供足够的信息或者我不清楚任何事情,请提前抱歉,这是我第一次尝试使用 .bat
和 .config
文件.
我正在使用一款学术软件,并尝试添加和运行我自己的组件。系统使用配置文件来启动系统所需的组件(类)列表,使用如下代码:
semaine.components = \
eu.semaine.examples.swimmer.SwimmerDisplay| \
系统运行正常,指定组件初始化。
我使用以下代码将自己的组件添加到现有组件列表中:
eu.semaine.examples.TestPackage.MyTest| \
但是我收到以下错误:
java.lang.NoClassDefFoundError:eu/semaine/examples/TestPackage/MyTest (wrong name: TestPackage/MyTest)
我环顾四周,在我看来,我没有做任何通常会导致此错误的事情,例如我的类名与其存储的文件名匹配(公共(public)类MyTest
存储在MyTest.java
中),MyTest
位于包TestPackage
,文件结构中的文件夹也命名为TestPackage
。
任何想法或建议将不胜感激。
最佳答案
您已要求
eu.semaine.examples.TestPackage.MyTest
但假设您已将该文件放置在名为 TestPackage 的目录中。
仔细查看批处理文件中指定的类路径。我的猜测是,对于初始冲突,您有一个像这样的目录层次结构, Root 于指定的类路径
eu
semaine
examples
swimmer
SwimmerDisplay
在说 eu.semaine.examples.TestPackage.MyTest 时,您是说该包将是“eu.semaine.examples.TestPackage”,目录层次结构现在将是
eu
semaine
examples
swimmer
SwimmerDisplay.class
TestPackage
MyTest.class
我认为你打算改为:
eu
semaine
examples
swimmer
SwimmerDisplay.class
TestPackage
MyTest.class
并说这门课只是
TestPackage.MyTest
不是
eu.semaine.examples.TestPackage.MyTest
[顺便说一句,我同意正常约定不是将包名称大写,但我不相信 Java 从大写中推断出语义。]
关于java - 无法解决 java NoClassDefFoundError 但一切看起来都正确......有什么想法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4166095/