0

我的 Windows 计算机有 netbeans、JDK 7 和 JRE 7。我制作了一个程序,但 jar 文件不能在只有 Java 6 的 MAC 上运行。在 MAC 上安装 Java 7 很麻烦。有人可以帮我运行文件吗?

堆栈跟踪:

: Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
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)
4

4 回答 4

5

这是意料之中的。如果你想用 JDK 7 编译到目标 6,你应该使用以下(假设你不使用 Java 7 特性):

javac -source 1.6 -target 1.6 

如果您使用 Maven,请选择:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <configuration>
    <source>1.6</source>
    <target>1.6</target>
  </configuration>
</plugin>

正如您在评论中所说,您使用的是 Netbeans。我没有个人经验,但根据文档,您可以更改Source/Binary Format的值(在这种情况下为 JDK 6)。

于 2012-07-31T08:10:16.167 回答
0

您应该编译您的源代码,例如在 Java 6 运行时。使用 Ant,它是使用任务的target属性来实现的javac。使用 Maven,使用Maven 编译器插件

于 2012-07-31T08:09:23.063 回答
0

您需要将编译目标设置为 JDK 6(或 5,或任何您想要支持的最低版本)。

在 Netbeans 中,转到项目属性(右键单击项目,选择 Properties_。然后在出现的对话框中,选择“Sources”并将“Source Level”更改为 JDK 6。

于 2012-07-31T08:10:34.857 回答
-2

通常,您不能使用 Java 6 运行时运行 Java 7 文件。您必须安装 Java 7,或者在 Java 6 下重建 jar。

于 2012-07-31T08:10:44.860 回答