Bat文件集classpath

时间:2014-03-24 15:29:49

标签: java class batch-file classpath

您能看到以下代码有什么问题吗?这是一个bat文件,我试图在执行我的jar(jdbc oracle驱动程序)之前设置一些依赖类。

set CLASSPATH=lib\dbdriver.zip;%CLASSPATH%
java -jar sql2java.jar test.properties
pause

我总是得到类未找到异常(该类在zip中我试图在类路径中添加)。 我甚至通过执行管理员来尝试这个,但无济于事

set CLASSPATH=lib\dbdriver.zip;%CLASSPATH%
java -jar %~dp0sql2java.jar %~dp0test.properties
pause

该类位于zip文件(path \ oracle \ jdbc \ OracleDriver)中,我正在尝试使用

检索它
  

jdbc.driver = oracle.jdbc.driver.OracleDriver

2 个答案:

答案 0 :(得分:5)

请检查此doc有关java(Java应用程序启动器)的信息。

对于-jar选项,它说 -

  

执行封装在JAR文件中的程序。第一个参数是JAR文件的名称而不是启动类名称。要使此选项起作用,JAR文件的清单必须包含Main-Class:classname形式的行。这里,classname使用public static void main(String [] args)方法标识该类,该方法充当应用程序的起点。

     

使用此选项时,JAR文件是所有用户类的源,其他用户类路径设置将被忽略。

因此,您需要在jar中包装所有内容(sql2java.jar),或者不要在-jar启动器命令中使用java选项。

答案 1 :(得分:1)

您可以使用java -jar来执行它,并在jar的清单文件中为应用程序定义类路径。有关如何在http://docs.oracle.com/javase/tutorial/deployment/jar/downman.html

设置应用程序的类路径,请参阅有关jar的Java教程

它说:

  

例如,在典型情况下,applet捆绑在JAR文件中   其清单引用了不同的JAR文件(或几个不同的文件)   JAR文件),作为该applet用途的实用程序。

     

指定要包含在Class中的Class-Path头字段中的类   applet或应用程序的清单文件。 Class-Path标头占用   以下表格:

Class-Path: jar1-name jar2-name directory-name/jar3-name
     

通过在清单中使用Class-Path标头,您可以避免使用   在调用Java运行你的时指定一个long -classpath标志   应用