【问题标题】:deploy java app on Heroku launch.main error在 Heroku launch.main 错误上部署 java 应用程序
【发布时间】:2014-04-14 15:09:15
【问题描述】:

我想在 HEROKU 上部署一个 java 应用程序。我是新手。我按照 将示例应用程序部署到 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

【问题讨论】:

    标签: java maven heroku tomcat7


    【解决方案1】:

    我遇到了类似的问题,我(嗯,几乎)这样解决了,只需删除:

    <packaging>war</packaging>
    

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

    【讨论】:

      【解决方案2】:

      我没有足够的积分来评论,但是你在关注什么文章?能给个链接吗?

      基于错误,我怀疑您的 Main.java 不在 src/main/java/launch 中。如果您按照这些说明进行操作,我认为您应该能够清除错误:
      http://devcenter.heroku.com/articles/create-a-java-web-application-using-embedded-tomcat

      如果这是您正在关注的文章,但您仍然遇到问题,如果您只是克隆示例 repo,可能会缓解您遇到的问题:

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

      【讨论】:

        【解决方案3】:

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

        这应该适合你。我遇到了同样的问题并解决了这个问题。

        【讨论】:

          【解决方案4】:

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

          我在 Heroku 上使用 Ubuntu 机器启动并运行一个 java 应用程序进行开发 - 并且在线程“main”中得到了同样的 异常java.lang.NoClassDefFoundError.

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

          键入java -versionjavac -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   
          

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2016-10-01
            • 2020-05-15
            • 2016-09-10
            • 2017-02-09
            • 1970-01-01
            • 2019-08-11
            • 2016-04-15
            • 2022-07-15
            相关资源
            最近更新 更多