在Manifest文件中设定路径
假设我们的程序的源代码包含在一个名为helloWorld.jar的jar文件中,并且该文件存放在D:myprogram目录下。于是,我们拥有下面的文件系统结构:
helloWorld.jar文件中的Manifest文件,是这样定义的:
Main-Class: org.mypackage.HelloWorld |
Class-Path: lib/supportLib.jar |
注意:manifest文件以换行符结束或者以return键结束。
然后,要注意在这个例子中,描述supportLib.jar的存放路径,是相对路径,是相对于helloWorld.jar文件的存放路径,用的并不是绝对路径(在命令行中,-classpath的值,就要用到绝对路径)。只要上述二者的相对位置结构保持不变,那么,jar文件的实际存放位置和它需要的类库的实际存放位置是不相关的。
要运行jar文件中的程序,我们可以使用下面的命令:
java -jar D:myprogramhelloWorld.jar |
不需要再在命令行中指定Classpath的值,因为,它的值已经在manifest文件中定义了。
注意:没有必要在载入程序(java)处定义主类,因为在manifest文件中,必须要有具有以下形式的一行:
Main-Class: classname |
在manifest文件中设定多个JAR文件的存放路径,用空格将每个路径区别开:
Class-Path: lib/supportLib.jar lib/supportLib2.jar |