2012-01-19 32 views
1

我想在HEROKU上部署java appa。我對maven很陌生。我按照中的示例應用程序將示例應用程序部署到了heroku(java + maven + tomcat7)文檔。 和我做了一個bulid,這是成功的。但只要我輸入sh/target/bin/weapps,我就會收到以下錯誤。任何人都可以幫我解決這個問題。在Heroku launch.main上部署java應用程序錯誤

Exception in thread "main" java.lang.NoClassDefFoundError: launch/Main 
Caused by: java.lang.ClassNotFoundException: launch.Main</br> 
    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) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
Could not find the main class: launch.Main. Program will exit. 

問候, arunbv

回答

1

我沒有足夠的積分發表評論,但你跟隨着什麼文章?你能鏈接嗎?

基於這個錯誤,我懷疑你的Main.java不在src/main/java/launch中。如果按照這些指示,我想你應該能夠清理錯誤:
http://devcenter.heroku.com/articles/create-a-java-web-application-using-embedded-tomcat

如果這是您關注的文章,你還是有問題,它可能會緩解您遇到的問題如果你只是克隆樣本回購:

git clone git://github.com/heroku/devcenter-embedded-tomcat.git 
8

我有一個類似的問題,我(當然,幾乎)解決了這種方式,只是刪除:

<packaging>war</packaging> 

的pom.xml。我知道這不是一個理想的解決方案,但不知何故,嵌入式tomcat插件不適用於戰爭包裝!

0

既然你說你是maven的新手,我認爲這個錯誤的原因是你只需將* .java代碼放在項目的根文件夾下,而你期望把它放在./src下/ main/java/

這應該適合你。我遇到了同樣的問題,並想出了這一點。

0

這可能已經死了,但以防萬一未來。

我站起來,用一個Java應用程序上運行的Heroku,使用Ubuntu的發展 - 並獲得在該線程同時異常「主要」 java.lang.NoClassDefFoundError

仔細檢查你使用相同Java編譯器版本爲您的Java SDK版本

類型java -version & javac -version。確保它們是相同的版本。

如果不是,您可以通過重新配置您的環境來解決這個問題,以便同時使用它們。 假設你已經下載並安裝要使用的Java版本,鍵入:

`sudo update-alternatives --config java` 

你會得到的選項

Selection Path           Priority Status 
------------------------------------------------------------ 
* 0   /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061  auto mode 
    1   /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061  manual mode 
    2   /usr/lib/jvm/jdk1.7.0/bin/java     1 

一個不錯的菜單中選擇要使用的版本。完成。 現在嘗試構建。