我有3个jar文件和一个依赖于这些jar文件的.java文件。如何使用命令提示符使用这些jar文件编译.java文件?
java -cp ".;magic.jar" Foo
可以java Foo -cp ".;magic.jar"
,不是。
我有3个jar文件和一个依赖于这些jar文件的.java文件。如何使用命令提示符使用这些jar文件编译.java文件?
java -cp ".;magic.jar" Foo
可以java Foo -cp ".;magic.jar"
,不是。
Answers:
您可以使用“ -cp”选项将jar文件包含在“ javac”命令中。
javac -cp ".:/home/path/mail.jar:/home/path/servlet.jar;" MyJavaFile.java
除了“ -cp”,您还可以使用“ -classpath”
javac -classpath ".:/home/path/mail.jar:/home/path/servlet.jar:" MyJavaFile.java
您可以在每次编译时通过正确设置环境变量“ CLASSPATH”来包含jar。环境变量将存储需要用于编译/执行任何java文件的jar和类的路径。您不必在每次编译文件时都单独包含jar。
不同的机器使用不同的方法将类路径设置为环境变量。Windows,Linux等的命令不同。
您可以在此博客中找到更多详细信息。
http://javarevisited.blogspot.com/2011/01/how-classpath-work-in-java.html
javac -classpath ".:/home/path/mail.jar;/home/path/servlet.jar" MyJavaFile.java
为我工作。我正在使用mac。我在某处读到':'用于Unix。
.:
办?抱歉,这是一个愚蠢的问题,但对我而言并不明显。
javac -cp .:/home/path/mail.jar:/home/path/servlet.jar; MyJavaFile.java
请在Linux上尝试
javac -cp jarfile source file
示例:-
javac -cp .:/jars/* com/template/*.java
.:/jars
替换在我的JAR文件所在的目录,我得到错误信息javac: invalid flag: /location/of/first/jar/file.jar
。
语法将在Windows dos命令上起作用:
javac -cp ".;first.jar;second.jar;third.jar" MyJavaFile.java
尝试通过环境变量设置将所有依赖项jar文件添加到类路径中,或使用以下步骤:
为依赖项jar文件设置类路径,如下所示:
set classpath=C:\Users\sarath_sivan\Desktop\jars\servlet-api.jar; C:\Users\sarath_sivan\Desktop\jars\spring-jdbc-3.0.2.RELEASE; C:\Users\sarath_sivan\Desktop\jars\spring-aop-3.0.2.RELEASE;
现在,您可以编译Java文件了。(命令:javac YourJavaFile.java
)
希望这能解决您的依赖问题。
以下是步骤,
将所有jar和.java文件复制到同一文件夹中(用文件名代替长路径很容易。尽管可以将jar和.java放在单独的文件夹中)。
编译,
javac -cp .:<file_1_name>.jar:<file_2_name>.jar <prog_name>.java
执行,
java -cp .:<file_1_name>.jar:<file_2_name>.jar <prog_name>
我希望这有帮助!
这将创建.class文件:
javac -classpath "[jarname with specified path]" [java filename]
这将执行类文件:
java -cp [jarname with specified path]: [java filename]
javac -classpath "/home/scorncer/Downloads/spark-core-2.3.jar" MyFile.java
和** run java -cp /home/scorncer/Downloads/spark-core-2.3.jar: MyFile.java also i tried java -cp /home/scorncer/Downloads/spark-core-2.3.jar: MyFile
您需要在编译时和运行时指定依赖项
要编译使用此格式
javac -cp "*.jar;classfile_path" filename.java
例:
javac -cp "ojdbc6.jar;c:\programs" Main.java
如果您使用的是Ubuntu:
/opt/JavaServices/sqlite $ export CLASSPATH=/opt/JarFiles/XXXX.jar:/opt/JarFiles/XXXX.jar:/opt/JavaServices/;javac SQLiteSample.java
转到文件夹位置(软件包结构外)
/opt/JavaServices $ export CLASSPATH=/opt/JarFiles/XXXXX.jar:/opt/JarFiles/XXXXX.jar:/opt/JavaServices/;java sqlite.SQLiteSample
注意:请查看文件位置和包名称