Запустите файл js узла с помощью java в фоновом процессе

#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();
    
 

Взято из этого урока.