摘录网上的代码,编译正常,运行出错testdll.java
public class testdll 

static 

System.loadLibrary("goodluck"); 

public native static int get(); 
public native static void set(int i); 
public static void main(String[] args) 

testdll test = new testdll(); 
test.set(10); 
System.out.println(test.get()); 

}
用javac testdll生成testdll.class
用javah testdll生成testdll.h
用vc6.0生成goodluck.dll用java testdll运行报如下错误
D:\workspace\java>java testdll
Exception in thread "main" java.lang.UnsupportedClassVersionError: testdll (Unsu
pported major.minor version 49.0)
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)

解决方案 »

  1.   

    是不是你用的java编译工具有问题,试试其他的版本呢。有病乱投医了。看你下面异常堆栈中的信息乱七八糟的,很可疑。
      

  2.   

    太谢谢楼上的兄弟了,真是java运行时的问题,因为有oracle,在环境变量path中有oracle安装时的jdk1.3.1,在我设置的javahome前面,删除前面oracle的jdk,运行成功。