一直是用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,有甚么解决的办法吗?

解决方案 »

  1.   

    设置好path路径,指向你的java虚拟机..
      

  2.   

    昨天有人发同样的问题,有人说是javac.exe和java.exe的版本不同造成的
    在设置path时把你的D:\Sun\AppServer\jdk\bin\放在最前面试试
      

  3.   

    下个工具多好啊。jcreater 3.5.
      

  4.   

    Java Web Start不需要设置环境变量,好像是开机之后启动一个进程管理吧。path里只有D:\Sun\AppServer\jdk\bin\一个东西也一样
      

  5.   

    呵呵,谢谢楼上的,我试试吧。不过我好容易才在Windows下配置好emacs的
      

  6.   

    出现楼主这种问题的根本就是
    你是直接把别人写出来的类拿来运行的
    这类应该是比你的JDK的版本要高的类编译的
    所以,你运行的时候会出现版本不同的异常
    建议你最好是把源文件一起拿过来
    然后编译运行,这样就可以避免这种错误了
      

  7.   

    答楼上的,代码如下:
    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]);
        }
    }
    这样也有问题吗?
      

  8.   

    去注册表看看,你的JDK的版本
    HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft