在 Java 9 中如何针对 jar 文件进行编译?
How do you compile against a jar file in Java 9?
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)
我不是在尝试使用模块,只是一个 .jar 文件,我可以通过指定 libs 文件夹将其包含在 IntelliJ 中。
编辑:
我真正的问题是我没有包括正确的罐子。针对 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
你拼错了选项。根据 javac options page for Java 9:
--class-path
path , -classpath
path, or -cp
path
Specifies where to find user class files and annotation processors. This class path overrides the user class path in the CLASSPATH
environment variable.
出于某种原因,如果您使用两个连字符选项 --
,“类路径”中有一个连字符:--class-path
。一个连字符选项 -
在“classpath”中没有连字符:-classpath
.
以下任何一个都有效:
javac *.java --class-path junit.jar
javac *.java -classpath junit.jar
javac *.java -cp junit.jar
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)
我不是在尝试使用模块,只是一个 .jar 文件,我可以通过指定 libs 文件夹将其包含在 IntelliJ 中。
编辑: 我真正的问题是我没有包括正确的罐子。针对 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
你拼错了选项。根据 javac options page for Java 9:
--class-path
path ,-classpath
path, or-cp
pathSpecifies where to find user class files and annotation processors. This class path overrides the user class path in the
CLASSPATH
environment variable.
出于某种原因,如果您使用两个连字符选项 --
,“类路径”中有一个连字符:--class-path
。一个连字符选项 -
在“classpath”中没有连字符:-classpath
.
以下任何一个都有效:
javac *.java --class-path junit.jar
javac *.java -classpath junit.jar
javac *.java -cp junit.jar