论坛首页 入门技术论坛

java -jar命令 运行一个jar包的classpath的疑惑

浏览 16313 次
该帖已经被评为新手帖
作者 正文
   发表时间:2006-10-28  
问题:
我自己写了一个小程序用于连接数据库,这个程序使用了一个第三方的包(classes12.jar),在ide运行没有问题,然后我把 此小程序打成了一个jar包:db.jar.然后在dos 中用命令行运行。步骤如下:
1.set classpath=d:\classer12.jar
2.java -jar db.jar
结果提示 找不到 classes12.jar
为什么难道运行jar包里的main 文件不能访问第三的包吗?(我觉得不可能)有人会问,会不会是别的环境设置不对,影响运行。但我用下列方式就能运行:
1.set classpath=d:\classer12.jar;d:\db.jar
2.java TestMain
能正确运行
其中:TestMain 是db.jar 的Main 文件。

希望大家都说一些自己看法,谢谢!
   发表时间:2006-10-28  
1.set classpath=d:\classer12.jar
2.java -jar db.jar
结果提示 找不到 classes12.jar


看清楚,你设置的是classer12.jar是不是自己写错了?如果不是写错路径,那么应该是ClassNotFoundException。而不是提示找不到jar了。
0 请登录后投票
   发表时间:2006-10-28  
sorry,笔误 classes12.jar
还是找不到。
0 请登录后投票
   发表时间:2006-10-28  
就是提示:ClassNotFoundException 找不到,只不过我没有说的那么详细
0 请登录后投票
   发表时间:2006-10-28  
java
-classpath <class search path of directories and zip/jar files>
              A ; separated list of directories, JAR archives,
              and ZIP archives to search for class files.
0 请登录后投票
   发表时间:2006-10-29  
[抛出异常的爱],你说的方法我在 sun 网站上看到过。我也试过,怎么写都不对。你能给出一个具体的执行步骤。谢谢!
0 请登录后投票
   发表时间:2006-10-29  
我觉得用:
set classpath=d:\classes12.jar
java -jar db.jar
应该就能得到我想要的结果,但为什么会抛出 ClassNotFoundException 异常,找不到oracle.jdbc.OracleDriver 类。
谁能说出理由吗?
0 请登录后投票
   发表时间:2006-10-29  
还是平时看书的时候没有特别注意,看了ibm上的一篇技术文章已经彻底解决了我的疑惑.
首先jar 分可执行jar 和非可执行jar

一个可执行的 JAR 必须通过 menifest 文件的头引用它所需要的所有其他从属 JAR。如果使用了 -jar 选项,那么环境变量 CLASSPATH 和在命令行中指定的所有类路径都被 JVM 所忽略。 (http://www-128.ibm.com/developerworks/cn/java/j-jar/index.html)所以我设置的classpath无效。

0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics