Jak mogę wywołać plik node.js w języku Java i zapisać wartości console.log w zmiennej String?Wywoływanie skryptu node.js z wnętrza java
Odpowiedz
Aplikacja Java może komunikować się z uruchomioną aplikacją Node.JS. Na przykład, możesz mieć aplikację Node.JS uruchomioną na dostępnym porcie, a aplikacja Java może komunikować się z nią przez gniazda tcp.
http://nodejs.org/api/net.html
Lub można utworzyć serwer HTTP i narazić usługi REST, która aplikacja Java może konsumować.
http://nodejs.org/api/http.html
Albo jak md_5 mówi, można użyć Runtime.exec a następnie zadzwonić getInputStream na proces wynikające.
http://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html
Sposoby można komunikować się między node.js i Java nie różnią się od innych przekrojach komunikacji aplikacji, które można zrobić.
Możliwe jest również wywołanie kodu Java z aplikacji Node.JS za pomocą polecenia podobnego do node-java.
Nie można zrobić. Dla normalnego JS możesz użyć Rhino, ale dla Node będziesz musiał upewnić się, że jest on w PATH, a następnie wywołać Runtine.exec lub ProcessBuilder z ByteArrayOutputsreams, które później mogą być przekształcone w łańcuchy. Kod węzła nie może uzyskać dostępu do Javy i na odwrót.
Sprawdź te projekty, które pozwalają na uruchamianie skryptów node.js wewnątrz JVM
- https://github.com/apigee/trireme (Apigee)
- http://nodyn.io/ (RedHat)
- https://avatar-js.java.net/ (Oracle)
Tak, jest ve Aby wykonać plik i plik node.js, użyj pliku java.
import java.io.FileReader;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
public class RunScriptFileDemo {
public static void main(String[] args) {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
try {
FileReader reader = new FileReader("yourFile.js");
engine.eval(reader);
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
To nie będzie działało w programach Node.js.To będzie uruchamiać tylko zwykłe programy javascript.Jak inni komentatorzy powiedzieli, trzeba by było dodać Avatar.js, nodyn, lub trireme aby uzyskać dostęp do wszystkich funkcji Node.js. – AllenKll
- 1. Wywoływanie skryptu PowerShell z Pythonem
- 2. Wywoływanie java z PHP
- 3. Wywoływanie skryptu powłoki z aplikacji Groovy/Grails
- 4. Uruchamianie skryptu Pythona z wnętrza bin virtualenv nie działa
- 5. Wywoływanie skryptów Powershell z Java
- 6. Wywoływanie cele Maven z Java
- 7. Wywoływanie C# dll z Java
- 8. Uruchom zadanie łyk z innego node.js skryptu
- 9. Wywoływanie sconów ze skryptu w języku Python
- 10. Uruchomienie skryptu bash z java
- 11. Jak uruchomić inny skrypt z wnętrza Lua?
- 12. Wywoływanie poleceń SVN z programu java
- 13. Jak uzyskać argumenty vm z wnętrza aplikacji java?
- 14. Wykonywanie skryptu powłoki z parametrami z java
- 15. Użycie trwałego z wnętrza Conduit
- 16. Wywoływanie skryptu bash z skryptu tcl oraz zwracanie i kończenie statusu
- 17. Jak wykonać słoik z wnętrza słoika?
- 18. Jak uruchomić pomost z wnętrza intellij?
- 19. Dlaczego cron nie wykonuje mojego skryptu node.js?
- 20. Wiązanie z viewmodelem z wnętrza matrycy
- 21. Ładowanie z ResourceBundle z wnętrza słoiczka
- 22. uruchamianie skryptu sql sql z java
- 23. JNI wywoływanie Java z C++ z wieloma wątkami
- 24. Wywoływanie głównej metody języka Java z parametrami z Eclipse
- 25. Wywoływanie Javy z PL/SQL
- 26. PHP wywoływanie innego skryptu, ale przez http (izolowanie ich).
- 27. Java: Wykrywanie wiersz użytkownika po uruchomieniu skryptu wsadowego z Java
- 28. Wywoływanie znaków specjalnych w wyrażeniach regularnych Java
- 29. jQuery - wybierając elementy z wnętrza elementu
- 30. Dostęp do klucza Bluetooth z wnętrza Dockera?
Próbowałem nazywając jshint użyciu Runtime.getRuntime exec() (...), ale wciąż otrzymuję wyjątek. Java.io.IOException: Nie można uruchomić programu "jshint" błąd CreateProcess = 2, system nie można znaleźć określonego pliku; Z normalnej linii poleceń działa dobrze, chociaż ... Nie mam pojęcia, że problem jest następujący :( –
wspomniałeś o połączeniu z działającą aplikacją node.js, ale tak nie jest. .js aplikacje wewnątrz jvm, jak wspomniano @ Somatik –
Ta odpowiedź jest całkowicie niezwiązana, zastanawiam się, dlaczego ma ona głosów! – Willa