在linux下运行java类出现的问题。

在linux下的jdk的目录是 /home/rwl/jdk
我编译后的class类在 /home/rwl/class_jsp/oss/A.class oss是包名
我在 class_jsp目录下执行 /home/rwl/jdk/bin/jar cf ./lib/oss.jar ./oss 打包成jar文件
然后执行jar文件中的A类 /home/rwl/jdk/bin/java -classpath "./lib/oss.jar" oss.A
最后报错
Exception in thread "main" java.lang.UnsupportedClassVersionError: oss/A : Unsupported major.minor version 51.0
找不到main方面么?
下面是A类中的内容

package oss;
public class A {
public static void main(String[] args) {
System.out.println("aaa");
}
}

我该怎么运行 这个类呢?

你干嘛要打包啊。 直接编译运行就好 javac编译, java运行。。 如果你要真的打包的话,你需要指定main class 的 , 因为你的打包命令没有指定main class 所以如果你要真运行的话,你可以这样运行:
java XXXX.jar your main class追问

呃 如果不用打包的话 我直接运行 java oss.A 这样还是不行啊!

追答

假如你编译的话--》 javac 文件名.java
假如你执行的话--> java 文件名 (不要任何后缀的, 因为main函数是唯一函数入口,程序会自动执行main函数)
不用带你的包名的。 你直接cd到 class 文件夹中 执行, 或者你从上一层执行的话不是 “点” 而是: java oss/A

追问

我是事先在window下编译后这个类文件,然后传上去在执行就报错,但是在linux下编译后在执行就过了,这是什么问题啊?jdk版本不同么?可是都是1.6的啊

追答

应该和jdk没关系啊。因为java是夸平台的。不论你是xp还是linux,都是一样的啊。 只要是class文件,就可以执行了。唯一的区别是不是因为路径设置问题啊。因为xp下你的路径设置和linux下是不一样的。 因为你使用到了package。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-02-18
重新用这个jdk的javac编译一下。追问

我是事先在window下编译后这个类文件,然后传上去在执行就报错,但是在linux下编译后在执行就过了,这是什么问题啊?jdk版本不同么?可是都是1.6的啊

追答

这个不太清楚。 反正是版本的问题。

第2个回答  2013-02-18
UnsupportedClassVersionError: oss/A
相似回答