关于java classpath 求解

pro_kevin 2010-03-17 11:44:28
问题描述:

-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
应该怎么写啊。

...全文
98 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
notlogin 2010-03-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 pro_kevin 的回复:]
结贴咯。
我找了些技术文章看了下。
大概原因是这样的。与大家分享下。

执行jar包的时候,如果同时引用另一个jar包的内容。
这样java -classpath ".;./ojdbc14.jar" -jar om_icheck_getconf.jar
是不能加载进虚拟机的。
解决方法俺能想到的有2种。
第一种比较笨拙:就是把需要引用的jar包放到JRE下面去。不推荐
第二种:直……
[/Quote]

LZ好人一个,留名学习
pro_kevin 2010-03-18
  • 打赏
  • 举报
回复
结贴咯。
我找了些技术文章看了下。
大概原因是这样的。与大家分享下。

执行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


pro_kevin 2010-03-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 froole 的回复:]
分隔号写错了

java -classpath ".:./ojdbc14.jar" -jar om_icheck_getconf.jar /home1/sagso/so_install
`
[/Quote]

分隔符没有错。
eviliw 2010-03-17
  • 打赏
  • 举报
回复
分隔符貌似是对的吧?
海诗美妆 2010-03-17
  • 打赏
  • 举报
回复
分隔号写错了

java -classpath ".:./ojdbc14.jar" -jar om_icheck_getconf.jar /home1/sagso/so_install
`
notlogin 2010-03-17
  • 打赏
  • 举报
回复
你的操作系统是64位的?

Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_14-b03, mixed mode)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧