当我在JGraphX包中运行HelloWorld.java示例时,我收到以下错误消息。
线程中的异常" main" java.lang.UnsupportedClassVersionError:JVMCFRE003糟糕的主要版本; class = com / mxgraph / swing / mxGraphComponent,offset = 6 at java.lang.ClassLoader.defineClassImpl(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:275) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:69) at java.net.URLClassLoader.defineClass(URLClassLoader.java:540) at java.net.URLClassLoader.defineClass(URLClassLoader.java:451) 在java.net.URLClassLoader.access $ 300(URLClassLoader.java:79) at java.net.URLClassLoader $ ClassFinder.run(URLClassLoader.java:1038) 在java.security.AccessController.doPrivileged(AccessController.java:284) 在java.net.URLClassLoader.findClass(URLClassLoader.java:429) at java.lang.ClassLoader.loadClass(ClassLoader.java:660) at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:358) at java.lang.ClassLoader.loadClass(ClassLoader.java:626) at java.lang.J9VMInternals.verifyImpl(Native Method) at java.lang.J9VMInternals.verify(J9VMInternals.java:72) 在java.lang.J9VMInternals.initialize(J9VMInternals.java:134)
源代码HelloWorld.java
package com.test.jgraphxdemo;
import javax.swing.JFrame;
import com.mxgraph.swing.mxGraphComponent;
import com.mxgraph.view.mxGraph;
public class HelloWorld extends JFrame
{
/**
*
*/
private static final long serialVersionUID = -2707712944901661771L;
public HelloWorld()
{
super("Hello, World!");
mxGraph graph = new mxGraph();
Object parent = graph.getDefaultParent();
graph.getModel().beginUpdate();
try
{
Object v1 = graph.insertVertex(parent, null, "Hello", 20, 20, 80,
30);
Object v2 = graph.insertVertex(parent, null, "World!", 240, 150,
80, 30);
graph.insertEdge(parent, null, "Edge", v1, v2);
}
finally
{
graph.getModel().endUpdate();
}
mxGraphComponent graphComponent = new mxGraphComponent(graph);
getContentPane().add(graphComponent);
}
public static void main(String[] args)
{
HelloWorld frame = new HelloWorld();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 320);
frame.setVisible(true);
}
}
我正在使用Eclipse和 Java SE 6 。
当我将jdk变为7时效果很好。但是根据jGraphx项目文档here,它应该支持编译器版本1.5及更高版本。
<properties>
<maven.compiler.source>1.5</maven.compiler.source>
<maven.compiler.target>1.5</maven.compiler.target>
<maven.compiler.compilerVersion>1.5</maven.compiler.compilerVersion>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
我现在完全陷入混乱。请帮忙。谢谢。
答案 0 :(得分:0)
默认情况下,库是使用JDK 7构建的。如果您想要支持早期的Java版本,只需使用适当的合规性标志重建库。