2012-01-19 68 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 

一个不错的菜单中选择要使用的版本。完成。 现在尝试构建。