如何针对Java 9中的jar文件进行编译?

时间:2018-05-15 16:21:42

标签: java classpath java-9 junit5

Java 9引入了模块的概念,它没有显式替换jar文件,但旧的--classpath选项似乎已经消失。

命令javac --help不再提及类路径。

我正在尝试针对JUnit编译一些学生作业:

> javac *.java --classpath junit.jar

但是我会遇到各种各样的错误,具体取决于我的尝试。对于上面的例子:

javac: invalid flag: --classpath

我的Java版本是:

> java --version
java 9
Java(TM) SE Runtime Environment (build 9+181)
Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)

我没有尝试使用模块,只是通过指定libs文件夹,我可以包含在IntelliJ中的.jar文件。

修改: 我真正的问题是我没有包括正确的罐子。根据IntelliJ的默认JUnit5配置进行编译工作:

 javac -classpath "C:\Program Files\JetBrains\IntelliJ IDEA 2017.2.5\plugins\junit\lib\junit-jupiter-api-5.0.0.jar;C:\Program Files\JetBrains\IntelliJ IDEA 2017.2.5\plugins\junit\lib\opentest4j-1.0.0.jar" *.java

1 个答案:

答案 0 :(得分:5)

你拼错了选项。根据{{​​3}}:

  

--class-path 路径-classpath 路径-cp 路径

     

指定在何处查找用户类文件和注释处理器。此类路径将覆盖CLASSPATH环境变量中的用户类路径。

出于某种原因,如果您使用两个连字符选项--,则“classpath”中有一个连字符:--class-path。一个连字符选项-在“classpath”中没有连字符:-classpath

其中任何一项都有效:

javac *.java --class-path junit.jar

javac *.java -classpath junit.jar

javac *.java -cp junit.jar