【问题标题】:Problems in running jar on Amazon ec2 [duplicate]在 Amazon ec2 上运行 jar 的问题 [重复]
【发布时间】:2014-01-07 07:45:04
【问题描述】:

您好,我在 Eclipse 中有一个 java 项目。主要类如下:

package aws;

public class Assignment3 {
public static void main(String[] args) throws Exception { }
}

我的清单文件是:

Manifest-Version: 1.0
Class-Path: aws.Assignment3

我成功地将带有 scp 的可执行 jar 导出到我的 ec2。当我尝试运行我的 jar 时,我得到:

[ec2-user@ip-10-138-8-38 project]$ java -jar alertShopper.jar
Exception in thread "main" java.lang.UnsupportedClassVersionError: aws/Assignment3 : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: aws.Assignment3. Program will exit.

我做到了

[ec2-user@ip-10-138-8-38 project]$ java -version
java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.1) (amazon-44.1.9.1.16.amzn1-i386)
OpenJDK Client VM (build 19.0-b06, mixed mode)

我不知道还能做什么。任何帮助将不胜感激。 谢谢

我现在有了一个新的 ec2 amazon ami,它安装了 java 1.7。但我需要在 amazon linux ami 上安装 jre-1.7。

【问题讨论】:

  • 升级到 Java 7。Java 8 即将淘汰,而 Java 6 在这一点上已经过时了。
  • 我在 ec2 上尝试 sudo yum install java-1.7.0-openjdk 但说没有要安装的软件包
  • 这应该适用于 Amazon Linux AMI。你用的是其他的吗?
  • 它是一个亚马逊 ec2 实例
  • 你这么说。你没有说你正在运行什么 AMI。

标签: java eclipse amazon-web-services jar amazon-ec2


【解决方案1】:

不支持的major.minor 51.0版

当用于编译代码的 java 版本与运行代码的版本不同时,会发生此问题。编译时使用高版本JDK,运行时使用低版本JDK。

您可能需要specify -target if you want to run lower version

【讨论】:

  • 那么我应该用不同的java版本重新编译我的项目并再次制作jar吗?
  • @sa_nyc:是的,您需要升级运行时 java 版本(或)在编译 java 代码时使用 -target。在答案中添加了参考。
  • 我尝试在 ec2 上执行 sudo yum install java-1.7.0-openjdk 但它说没有要安装的软件包
  • @sa_nyc:我对 *nix 了解不多。最好的选择可能是在编译代码时使用 -target。
  • 我需要它通过 unix 为 amazon ec2 工作
【解决方案2】:

所有的都做了 sudo yum install jre-1.7.0-openjdk 并更改为 java 1.7。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-01
    • 1970-01-01
    • 2017-12-02
    • 2012-05-22
    • 2018-06-27
    • 2011-07-27
    • 2018-08-17
    相关资源
    最近更新 更多