После создания модульного приложения в NetBeans 11.0 я могу запустить его с синтаксисом:
java -p MODULE_PATH --add-modules MODULES -jar App.jar
Я хочу запустить приложение с:
java -p MODULE_PATH -m module[/mainclass] or --module modulename[/mainclass]
Естьмного примеров в интернете, но с компиляцией в командной строке, а не с использованием NetBeans.
Есть ли способ запустить приложение, созданное в NetBeans, с помощью только --module
примера выше, или мне нужно выполнить несколько команд, чтобы включить это?
Для созданного теста:
Сервисмодуль:
module com.test {
exports com.test.interfaces;
uses com.test.interfaces.ITest;}
Класс обслуживания:
import java.util.ArrayList;
import java.util.List;
import java.util.ServiceLoader;
public interface ITest {
static List<ITest> getInstances() {
ServiceLoader<ITest> services = ServiceLoader.load(ITest.class);
List<ITest> list = new ArrayList<>();
services.iterator().forEachRemaining(list::add);
return list;
}
void print(String text);}
Модуль поставщика услуг:
module com.test.provider {
requires com.test;
provides com.test.interfaces.ITest with com.test.provider.impl.ITestImpl;
}
Класс поставщика услуг:
package com.test.provider.impl;
import com.test.interfaces.ITest;
public class ITestImpl implements ITest {
@Override
public void print(String text) {
System.out.println("Message: " + text);
}
}
КлиентМодуль приложения:
module org.test {
exports org.test.app;
requires com.test;
requires com.test.provider;
}
Класс клиентского приложения:
package org.test.app;
import com.test.interfaces.ITest;
import java.util.List;
public class TestServiceClient {
public static void main(String[] args) {
List<ITest> list = ITest.getInstances();
for (ITest object : list) {
object.print("Hello");
}
}
}
Выше приведен пример службы, поставщика услуг и клиентского приложения, которые можно запустить с помощью следующей команды:
java -p mods --add-modules com.test,com.test.provider -jar TestServiceClient.jar
Но это не работает с:
java -p mods -m org.test/org.test.app.TestServiceClient.jar
Что я делаю не так?