#java
Вопрос:
В настоящее время я разрабатываю сценарий автоматизации, в котором мне нужно запустить файл node js с помощью командной строки, и он в основном виртуально генерирует симулятор.
Я хочу запустить симулятор, используя фоновый процесс, который должен обрабатываться java-кодом.
В настоящее время я написал код, который открывает терминал с помощью всплывающего окна и автоматически выполняет файл node js. Но я хочу, чтобы этот процесс выполнялся в фоновом режиме. Кроме того, я думаю, что этот код зависит от операционной системы Windows. Я хочу запустить процесс в фоновом режиме, и он должен работать также в операционной системе Linux
public static void main(String[] args) throws IOException, InterruptedException {
Runtime.getRuntime().exec(new String[]
{"cmd", "/k", "start", "cmd", "/c", ""cd 6edb792f1492/Simulator amp;amp; node device.js amp; pause""});
}
Есть ли кто-нибудь, кто может помочь мне запустить процесс в фоновом режиме с помощью кода java??
Ответ №1:
Вы можете использовать Nashorn
.
Ниже приведен пример выполнения кода Javascript с Java.
public class NashornExample {
public static void main(String[] args) throws Exception{
// Creating script engine
ScriptEngine ee = new ScriptEngineManager().getEngineByName("Nashorn");
// Reading Nashorn file
ee.eval(new FileReader("js/hello.js"));
}
}
ПРИМЕЧАНИЕ: Nashorn устарел начиная с JDK15 и далее.
Вы можете использовать исполняемый файл для запуска Javascript в новом потоке. Попробуйте что-нибудь в этом роде.
Runnable runnable = () -> {
//YOUR CODE RUNNING JAVASCRIPT HERE
};
Thread thread1 = new Thread(runnable);
thread1.start();
Взято из этого урока.