在源代码中和编译期间包含jar文件

时间:2012-10-24 01:05:25

标签: jar classpath javac java

我制作了自定义jar文件并使用

进行编译
path C:\Program Files\Java\jdk1.7.0_04\bin;%path%
javac *.java
jar cvf QLibrary.jar *.class

然后我把那个jar文件放在我Main.java所在的同一个目录中

Main.java将使用jar中的类

所以我决定将import QLibrary.*;放在Main.java

我使用

进行编译
path C:\Program Files\Java\jdk1.7.0_04\bin;%path%
javac -cp ".;*.jar" *java

但显然它无法识别库或其中的类。我究竟做错了什么?

2 个答案:

答案 0 :(得分:3)

您应该列出所有jar文件的名称:

javac -cp ".;QLibrary.jar" *java

或者你可以用这种方式使用通配符:

javac -cp ".;*" *java

类路径条目可以包含基本名称通配符*,这类似于指定扩展名为.jar.JAR的目录中所有文件的列表。例如,类路径条目foo/*指定名为foo的目录中的所有JAR文件。简单地由*组成的类路径条目扩展为当前目录中所有jar文件的列表。 ...例如,如果目录foo包含a.jarb.jarc.jar,则类路径foo/*将扩展为foo/a.jar;foo/b.jar;foo/c.jar }。

http://docs.oracle.com/javase/6/docs/technotes/tools/windows/classpath.html

答案 1 :(得分:1)

正如javac -cp option中所述,如果您使用Windows,请尝试java -cp .;QLibrary.jar mysource