一直是用c++的,刚刚对java产生兴趣,谁知第一个SayHello的程序就遭受到打击-_-!
代码很简单,我就不写了,就是打印一个字符串,SayHello的。配置完环境变量,编译都没有问题。执行时出错了:
D:\My Documents\Javasrc>Java Welcome
Exception in thread "main" java.lang.UnsupportedClassVersionError: Welcome (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)
在网上各种文档翻了好长时间都没有找到错误原因,抓狂了n久,突然想起来之前有用Topcoder的Arena,所以装了Java Web Start,而它安装的时候在我的系统盘里也装了一遍jre,莫非它与jdk有冲突。于是,使用完整的路径名执行一边代码:
D:\My Documents\Javasrc>D:\Sun\AppServer\jdk\bin\java Welcome
这次正确执行了。
废话有点多了,我只是想描述的清楚些。简单的说就是jdk和java web start都有java.exe,它俩冲突了。不想删掉java web start,有甚么解决的办法吗?
代码很简单,我就不写了,就是打印一个字符串,SayHello的。配置完环境变量,编译都没有问题。执行时出错了:
D:\My Documents\Javasrc>Java Welcome
Exception in thread "main" java.lang.UnsupportedClassVersionError: Welcome (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)
在网上各种文档翻了好长时间都没有找到错误原因,抓狂了n久,突然想起来之前有用Topcoder的Arena,所以装了Java Web Start,而它安装的时候在我的系统盘里也装了一遍jre,莫非它与jdk有冲突。于是,使用完整的路径名执行一边代码:
D:\My Documents\Javasrc>D:\Sun\AppServer\jdk\bin\java Welcome
这次正确执行了。
废话有点多了,我只是想描述的清楚些。简单的说就是jdk和java web start都有java.exe,它俩冲突了。不想删掉java web start,有甚么解决的办法吗?
在设置path时把你的D:\Sun\AppServer\jdk\bin\放在最前面试试
你是直接把别人写出来的类拿来运行的
这类应该是比你的JDK的版本要高的类编译的
所以,你运行的时候会出现版本不同的异常
建议你最好是把源文件一起拿过来
然后编译运行,这样就可以避免这种错误了
public class Welcome
{
public static void main(String[] args)
{
String[] greeting = new String[2];
greeting[0] = "Welcome to Core Java";
greeting[1] = "It is a good book"; for (int i = 0; i < greeting.length; i++)
System.out.println(greeting[i]);
}
}
这样也有问题吗?
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft