在Heroku launch.main错误上部署java应用程序

时间:2012-01-19 10:10:14

标签: java maven heroku tomcat7

我想在 HEROKU 上部署一个java appa。我是maven的新手。我在将示例应用程序部署到heroku(java + maven + tomcat7)文档中进行了所有设置。 我做了一个bulid,它是成功的。但是,一旦我输入sh / target / bin / weapps,我就会收到以下错误。任何人都可以帮我解决这个问题。

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

4 个答案:

答案 0 :(得分:8)

我有类似的问题,我(好吧,几乎)用这种方式解决了,只需删除:

<packaging>war</packaging>

来自 pom.xml 。我知道这不是一个理想的解决方案,但是不知何故嵌入式tomcat插件不适用于war包装!

答案 1 :(得分: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

答案 2 :(得分:0)

既然你说你是maven的新手,我认为这个错误的原因是你只需将* .java代码放在项目的根文件夹下,而你可能会把它放在./src/下。主/ JAVA /

这对你有用。我遇到了同样的问题并想出了这个问题。

答案 3 :(得分:0)

这可能已经死了,但万一它可以帮助未来的人们。

我使用 Heroku 上的java应用程序启动并运行,使用 Ubuntu 计算机进行开发 - 并在线程&#34中获得相同的异常;主&#34; java.lang.NoClassDefFoundError

仔细检查您是否使用与 java sdk版相同的 java编译器版

输入java -version&amp; 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   

选择您要使用的版本。完成。 现在尝试建立。