Java 在AmazonEC2上运行jar时出现的问题

Java 在AmazonEC2上运行jar时出现的问题,java,eclipse,amazon-web-services,jar,amazon-ec2,Java,Eclipse,Amazon Web Services,Jar,Amazon Ec2,嗨,我在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-1

嗨,我在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亚马逊ami,它安装了Java1.7。但是我需要在AmazonLinuxAMI上安装jre-1.7

不支持的major.minor版本51.0

当用于编译代码的java版本与运行代码的版本不同时,就会出现此问题。较高版本的JDK在编译时运行,较低版本的JDK在运行时运行

您可能需要

全部完成
sudo-yum安装jre-1.7.0-openjdk
并更改为java 1.7。

那么我是否应该用不同的java版本重新编译我的项目并再次制作jar?@sa_-nyc:是的,您需要在编译java代码时升级运行时java版本(或使用-target)。在回答中添加了参考。我尝试在ec2上安装sudo-yum-java-1.7.0-openjdk,但它说没有要安装的包install@sa_nyc当前位置我对*尼克斯了解不多。最好的选择可能是编译代码时使用-target。我需要它通过unix for amazon EC2升级到Java 7。Java 8已经快过时了,Java 6在这一点上已经过时了。我正在尝试在ec2上安装sudo yum Java-1.7.0-openjdk,但是说没有可以在Amazon Linux AMI上运行的安装包。你用的是另一个吗?这是亚马逊ec2实例你说过的。你没说你在跑什么。