安装oralce后在cmd模式下运行java命令出错:Exception in thread "main" java.lang.UnsupportedClassVersionError: org/getopt/luke/Luke (Unsupported

来源:互联网 发布:开淘宝店怎么弄 编辑:程序博客网 时间:2024/06/13 23:46

记得最后一次在cmd模式下运行java命令是2-3个月前做Lucene索引,今天一运行

D:/>java -jar lukeall-0.8.1.jar

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/getopt/lu

ke/Luke (Unsupported 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)

还以为自己命令记错了,网上查一下没错啊,输入java查看的帮助也是这样啊。

JavaWorld@TW论坛里了解到:

原来安装oracle后会导致这个问题的出现,自己的电脑前段时间就安装了oracle

C:/Documents and Settings/USER>java -version

java version "1.3.1_01"

Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1

Java HotSpot(TM) Client VM (build 1.3.1_01, mixed mode)

 

C:/Documents and Settings/USER>javac -version

javac 1.6.0_05

终于明白为什么当初自学jbpm时在用ant脚本建表报错,使我查看这两个的版本会不一样的疑问。

开始——搜索——java.exe

解决方法:

右击‘我的电脑’——高级——环境变量

——User的用户变量

   Path路径中第一个已经是:D:/jdk1.6.0_05/bin;

——系统变量

Path路径是:

D:/oracle/ora92/bin;C:/Program Files/Oracle/jre/1.3.1/bin;C:/Program

Files/Oracle/jre/1.1.8/bin;%JAVA_HOME%/bin;%SystemRoot%/system32;%SystemRoot%;%SystemRoot%/System32/Wbem; …

%JAVA_HOME%/bin;放在最前面,关闭已打开的cmd窗口,重新打开一个cmd窗口:

 

C:/Documents and Settings/USER>java -version

java version "1.6.0_05"

Java(TM) SE Runtime Environment (build 1.6.0_05-b13)

Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharing)

 

 

Warning:  The encoding 'GBK' is not supported by the Java runtime.

 

*         补充一些知识:EclipseJRE环境

[]区分Eclipse中的两种JRE

    今天一个CownewStudio的使用者通过QQ问我他的Eclipse安装CownewStudio以后在eclipse中可以看到studio,但是运行的时候提示类加载错误。因为CownewStudio目前的版本只支持JDK5,所以我询问他Eclipse使用的是不是1.4JRE,但是他确认它用的就是1.5的。

  后来经过实验,我确认还是JRE版本的问题,他就把他的Eclipse截图发给了我,以证明他用的是JDK1.5,但是我发现他发过来的图片工程编译器配置对话框的。哈哈,我终于明白了,让他把Eclipse的配置详细信息(帮助”=关于Eclipse”=配置详细信息)发过来,果然:

  -vm(其后的参数值要换行写,且之间不能有多余空格)

  c:/programe/jdk1.4.2/jre/bin/javaw.exe

  原来他装了多个版本的JDK。我要他把JDK1.5目录下的JRE目录拷贝到eclipse安装目录下,然后重启Eclipse,一切工作正常了。

  其实这是很多刚刚接触Eclipse、甚至用了好长时间Eclipse的开发人员经常犯的错,也就是把Eclipse运行时的JRE与工作空间中项目所用的JRE版本弄混乱。

  Eclipse也是一个普通的Java程序,因此必须有一个JRE做为运行环境。如果你的机器上没有安装任何JRE(或者JDK,本文不做二者的区分),那么点击eclipse.exe就会报错说找不到JRE。此时可以安装一个JRE、或者直接把JRE目录拷贝到eclipse安装目录下。

  在Eclipse的每个项目中可以为项目指定不同的JRE版本,比如A项目使用JDK1.4编译,B项目使用JDK1.5编译。这个JDK版本是和Eclipse运行JRE没有直接关系的。

  项目的JDK版本是很容易修改的,那么任何指定Eclipse启动所用的JRE呢?

Eclipse启动的时候找JRE的顺序是:

u       如果eclipse.ini中配置了-vm参数,那么则使用这个参数指定的JRE

u       否则就去查看eclipse安装目录下是否有JRE文件夹,如果有的话就使用这个JRE

u       否则的话就去系统中查找安装的JRE,如果还找不到的话就报错。

所以如果不想卸载掉其他的JDK的话,可以有两种方式:

1)直接把要使用的JRE文件夹拷贝到Eclipse目录下,这是懒人常用的方法(2)修改eclipse.ini文件,添加-vm参数,指定要运行的虚拟机的地址,使用 -vm 命令行自变量例子:

-vm

c:/jre/bin/javaw.exe

 

系统安装多个版本jre时的指定使用

当在控制台执行java.exe,操作系统寻找JRE的方式如下:先找当前目录下有没有JRE
再找父目录下有没有
JRE
接着在PATH路径中找
JRE
注册表HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Runtime Environment/ 查看CurrentVersion的键值指向哪个JRE   (注册表中此JavaSoft项是在安装卸载JRE时自动创建和删除)最常用的是在PATH路径中找JRE,一般情况下,自己的程序运行之前都会先在批处理文件里面临时设置PATH,把自己用的JRE放到PATH路径最前面,所以肯定会运行自己带的JRE,不会造成版本混乱。

 

原创粉丝点击