我有一个类,我在 OSX(Java 1.6)上的 eclipse 中的标准 java 项目中编码。该类使用来自另一个库的类和接口。
我选择类,然后执行 Run As > Java Application,一切正常。
之后,我尝试将我的项目作为 Maven 项目运行,事情开始变得有点令人沮丧。我总结了这里的所有步骤,希望有人能告诉我我做错了什么: - 从标准 java 项目中,我右键单击并配置 > 转换为 Maven 项目并单击芬兰语。到目前为止一切都很好。
然后构建路径>配置构建路径>并添加包含我的项目的文件夹。还好
然后我删除了所有@Override 注释,因为我在某处读到 Maven 使用 JDK 1.5 而不是 1.6。不管怎样,我删除它们,我的危险信号就会消失。此时,我的类看起来与原始 java 项目中的完全一样(除了我删除的@override)
然后我做 Maven > clean。我得到了构建成功
然后 Maven > 安装。我获得了构建成功
然后我选择我的类并执行 Run As > Java Application ,我得到了这个丑陋的跟踪:
线程“main”中的异常 java.lang.NoClassDefFoundError: LMAXTrading/algos/HeartbeatClient 原因:java.lang.ClassNotFoundException: LMAXTrading.algos.HeartbeatClient at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java. security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass( Launcher.java:301) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:247)
我不知道从这里去哪里。你可以想象我经历了很多试验和错误,并在 SO 和其他地方搜索以找到一种方法来让它工作。但我就是不知道出了什么问题。因此,如果有人有想法,我很乐意倾听。
我从导航器视图以及包资源管理器视图中粘贴到我的目录布局下方
这是我添加了 JRE 配置的 POM.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>someproject</groupId>
<artifactId>someproject</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
</project>