Модуль moduleA не найден в исходном пути модуля, пытается скомпилировать - PullRequest
3 голосов
/ 04 июня 2019

После ответа на этот вопрос я опубликовал руководства по java 9 модулям + примеры на Github и инструкции по запуску для будущих пользователей:

У меня есть очень простая ниже структура:

src 
│   module-info.java
│ 
└───moduleA
    └───pack1
            Main.java

module-info .java:

module moduleA {

}

Main.java:

package moduleA.pack1;
public class Main{

 public static void main(String[] args){
   System.out.println("Hello Java 11");
 }
}

И я пытаюсь скомпилировать, а затем запустить это модульное Java-приложение, которое очень просто.

Итак, из команды, с которой я работаю:

Компиляция

javac --module-source-path src -d out -m moduleA

Run

java  --module-path out -m moduleA/pack1.Main

enter image description here

От IntelliJ он работает как шарм, я не знаю, за какой магией он скрывается.

Что я делаю не так ?

Ответы [ 2 ]

2 голосов
/ 04 июня 2019

--module-source-path обычно используется для компиляции нескольких модулей одновременно. Но, конечно, вы можете скомпилировать один модуль с ним, если хотите. Однако вам необходимо переместить исходные файлы в каталог с именем модуля:

src
└───moduleA
    │───module-info.java
    └───moduleA
        └───pack1
            └───Main.java

Также вы должны исправить командную строку, которая запускает ваш модуль:

java --module-path out -m moduleA/moduleA.pack1.Main
1 голос
/ 04 июня 2019

Похоже, вы пытаетесь запустить его с рабочего стола, а файл отсутствует в папке рабочего стола.

см. Ссылку ниже и используйте относительный путь для выполнения

Невозможно разрешить модуль с помощью --module-source-path

...