我有一個類,我在OSX(Java 1.6)上的eclipse中的標準java項目中編寫代碼。該類使用另一個庫中的類和接口。
我選擇類,然後做運行> Java應用程序,並運行良好。NoClassDefFoundError將簡單的java項目轉換爲eclipse中的maven項目
之後,我嘗試運行我的項目作爲Maven項目和事情開始變得有點沮喪。我在這裏總結的所有步驟希望有人告訴我什麼,我做錯了: - 從標準的Java項目我右鍵單擊並執行配置>轉換爲Maven項目並單擊芬蘭語。迄今爲止都很好。
然後構建路徑>配置構建路徑>並添加包含我的項目的文件夾。仍然不錯
然後,我刪除了所有的@Override註釋,因爲我在SO上讀過某處,Maven使用JDK 1.5而不是1.6。無論如何,我將它們移走,我的紅旗消失。在這一點上我的班級看起來完全像在原始的Java項目(除了@override,我刪除)
然後我做Maven>乾淨。我獲得成功
THEN Maven> Install。我得到一個構建成功
然後我選擇我的課,做運行方式> Java應用程序,我得到這個難看的痕跡:在線程
異常「主要」 java.lang.NoClassDefFoundError:LMAXTrading /交易算法/在java.net.URLClassLoader的$ 1.run(URLClassLoader.java:202) LMAXTrading.algos.HeartbeatClient 在java.security.AccessController.doPrivileged(本機方法) 是java:HeartbeatClient 造成的:拋出java.lang.ClassNotFoundException。 net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Lau ncher $ AppClassLoader.loadClass(Launcher.java:301) 在java.lang.ClassLoader.loadClass(ClassLoader.java:247)
我不知道在哪裏可以從這裏走。你可以想象,我經歷了很多嘗試和錯誤,並在SO和其他地方搜索,找到一種方法來實現這一目標。但我無法弄清楚什麼是錯的。所以如果有人有一個想法,我很樂意傾聽。
我下面粘貼從導航查看我的目錄佈局,以及從Package Explorer視圖
這裏是我已經添加了JRE中的pom.xml config
<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>
Maven可以使用任何版本的Java。你誤會了這個 - 只需配置'maven-compiler-plugin'。 –
您是否在pom.xml中添加了必要的Maven依賴項? –
考慮到已經發生了多少變化,從Eclipse菜單中執行Project> Clean可能是值得的。 –