问题描述:-rwxrwxr-x 1 sagso users     161 Mar 17 11:41 GetOSGCfgParam.sh
-rwxrwxrwx 1 sagso users     115 Mar 17 11:33 GetOSGCfgParam.sh.bak
-rw-r--r-- 1 sagso users    7016 Jan 22 11:41 db2client_deinstall.sh
-rw-r--r-- 1 sagso users 1077696 Jan 22 11:41 db2jcc.jar
-rw-r--r-- 1 sagso users     673 Jan 22 11:41 db2jcc_license_c.jar
-rw-r--r-- 1 sagso users    1013 Jan 22 11:41 db2jcc_license_cu.jar
-rw-r--r-- 1 sagso users    7402 Jan 22 11:41 db2server_deinstall.sh
-rw-r--r-- 1 sagso users    3462 Jan 22 11:41 enable_auto_ssh.exp
-rw-r--r-- 1 root  root  1545954 Mar 17 09:49 ojdbc14.jar
-rwxrwxrwx 1 sagso users    5730 Mar 17 11:31 om_icheck_getconf.jar
-rw-r--r-- 1 sagso users    6701 Jan 22 11:41 osg_check_tool_getconf.jar
-rw-rw-r-- 1 sagso users      87 Mar 17 11:41 osgconf.properties
-rw-r--r-- 1 sagso users     389 Jan 22 11:41 osggetcfg
红色是我要调用的jar包 和Oracle的驱动包下面是java版本号
<233 osg216 [sagso] :/home1/sagso/so_install/tools>java -version
java version "1.5.0_14"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_14-b03)
Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_14-b03, mixed mode)
<234 osg216 [sagso] :/home1/sagso/so_install/tools>执行下面命令报错java -classpath ".;./ojdbc14.jar" -jar om_icheck_getconf.jar /home1/sagso/so_install
enter in mainjava.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:164)
        at com.huawei.osg.om.icheck.SGPGetCfgParam.getConnection(SGPGetCfgParam.java:231)
        at com.huawei.osg.om.icheck.SGPGetCfgParam.getBoardInfoConfig(SGPGetCfgParam.java:62)
        at com.huawei.osg.om.icheck.SGPGetCfgParam.getOSGCfgParam(SGPGetCfgParam.java:51)
        at com.huawei.osg.om.icheck.SGPGetCfgParam.main(SGPGetCfgParam.java:47)
很明显是oracle的包没有设置成功
问该命令java -classpath ".;./ojdbc14.jar" -jar om_icheck_getconf.jar /home1/sagso/so_install
应该怎么写啊。

解决方案 »

  1.   

    你的操作系统是64位的?Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_14-b03, mixed mode)
      

  2.   

    分隔号写错了java -classpath ".:./ojdbc14.jar" -jar om_icheck_getconf.jar /home1/sagso/so_install
    `
      

  3.   

    结贴咯。
    我找了些技术文章看了下。
    大概原因是这样的。与大家分享下。执行jar包的时候,如果同时引用另一个jar包的内容。
    这样java -classpath ".;./ojdbc14.jar" -jar om_icheck_getconf.jar
    是不能加载进虚拟机的。
    解决方法俺能想到的有2种。
    第一种比较笨拙:就是把需要引用的jar包放到JRE下面去。不推荐
    第二种:直接把当前需要执行的jar(带有你的main()方法的)一起加载 然后直接调用主方法
    示例:java -classpath ".;./ojdbc14.jar;om_icheck_getconf.jar" at com.huawei.osg.om.icheck.SGPGetCfgParam.main收工。嘿嘿。还有java1.5之后会自动加载jre下面的rt.jar,1.4之前不会
    这就是为什么1.5之后classpath 只要配置一个"."就行了的原因
    而1.4则需要写出完整的.;rt.jar;tools.jar