Как вы компилируете файл JAR в Java 9? - PullRequest
0 голосов
/ 15 мая 2018

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, который я мог бы включить в IntelliJ, указав папку libs.

Редактировать : Моя настоящая проблема заключалась в том, что я не включал правильные банки. Компиляция с использованием стандартной конфигурации 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 голосов
/ 15 мая 2018

Вы ошиблись опцией.Согласно странице параметров javac для Java 9 :

--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
...