Làm thế nào tôi có thể gọi một node.js bên trong java và lưu các giá trị console.log trong một biến String?Gọi một tập lệnh node.js từ bên trong java
Trả lời
Có thể ứng dụng Java giao tiếp với ứng dụng Node.JS đang chạy. Ví dụ, bạn có thể có một ứng dụng Node.JS chạy trên một cổng có sẵn và ứng dụng Java có thể giao tiếp với nó thông qua các socket tcp.
http://nodejs.org/api/net.html
Hoặc bạn có thể tạo một máy chủ http và phơi bày một dịch vụ còn lại mà ứng dụng Java của bạn có thể tiêu thụ.
http://nodejs.org/api/http.html
Hoặc như md_5 nói, bạn có thể sử dụng Runtime.exec và sau đó gọi getInputStream về quá trình tạo thành.
http://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html
Những cách bạn có thể giao tiếp giữa Node.js và Java là không có khác biệt so với giao tiếp ứng chéo khác có thể được thực hiện.
Cũng có thể gọi mã Java từ ứng dụng Node.JS của bạn bằng cách sử dụng một cái gì đó như nút-java.
Không thể hoàn thành. Đối với JS bình thường, bạn có thể sử dụng Rhino, nhưng đối với Node bạn sẽ cần phải chắc chắn rằng nó nằm trong PATH sau đó gọi Runtine.exec hoặc một ProcessBuilder với ByteArrayOutputsreams mà sau này có thể được chuyển thành chuỗi. Mã nút không thể truy cập Java và ngược lại.
Kiểm tra các dự án này cho phép bạn chạy Node.js kịch bản bên trong JVM
- https://github.com/apigee/trireme (Apigee)
- http://nodyn.io/ (Redhat)
- https://avatar-js.java.net/ (Oracle)
Có, nó đã là ry eassy để thực thi và tập tin node.js sử dụng 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();
}
}
}
Điều này sẽ không chạy các chương trình Node.js. Nó sẽ chỉ chạy các chương trình javascript đơn giản.Như những người bình luận khác đã nói, người ta sẽ cần thêm Avatar.js, nodyn, hoặc trireme để có được bất kỳ tính năng nào của Node.js để hoạt động. – AllenKll
- 1. Gọi tập lệnh Powershell từ Java
- 2. Thoát tập lệnh lô từ bên trong một hàm
- 3. Microsoft SQL Server Management Studio chạy tập lệnh từ bên trong một tập lệnh
- 4. Làm thế nào để gọi một tập lệnh python hoặc shell từ bên trong Extendscript?
- 5. Làm cách nào để chạy tập lệnh Perl từ bên trong tập lệnh Perl?
- 6. Truy xuất trạng thái thoát từ tập lệnh php bên trong tập lệnh shell
- 7. Gọi hàm macro từ bên trong lệnh printf trong C
- 8. VLC chết khi được gọi từ bên trong Java
- 9. Gọi hàm Python từ tập lệnh shell
- 10. Gọi một lớp java từ perl
- 11. Gọi tập lệnh Perl từ Python
- 12. Gọi exiftool từ tập lệnh python?
- 13. Có thể gọi tập lệnh R bên ngoài từ đánh dấu R (.Rmd) trong RStudio không?
- 14. Gọi aspnet_regsql.exe từ tập lệnh SQL
- 15. Gọi một tập lệnh bash từ tập lệnh tcl và trạng thái trở về và thoát
- 16. Scripting java: import class từ một tập tin bên ngoài
- 17. Làm cách nào để thoát khỏi tập lệnh nodeJS từ bên trong tập lệnh?
- 18. Muốn gọi lệnh shell linux từ Java
- 19. cách Tăng sự kiện tùy chỉnh từ bên trong đối tượng tập lệnh java
- 20. Chạy tập lệnh bên trong C#
- 21. Làm thế nào để bạn thực hiện SQL từ bên trong một tập lệnh bash?
- 22. Tôi có thể gọi Ruby từ Node.js bằng cách nào?
- 23. Telnet bên trong tập lệnh shell
- 24. jsdom không xử lý tập lệnh bên trong trang web
- 25. Yêu cầu độ cao UAC từ bên trong một tập lệnh Python?
- 26. Gọi hàm unset() trong tập lệnh PHP
- 27. R từ bên trong Java
- 28. Chạy tập lệnh bash shell trong java
- 29. npm: chạy tập lệnh từ package.json từ bất kỳ đâu bên trong thư mục dự án
- 30. Ngăn chặn cuộc gọi của một hàm tạo riêng từ bên trong lớp trong Java
Tôi đã thử gọi jshint bằng cách sử dụng Runtime.getRuntime(). Exec (...), nhưng tôi tiếp tục nhận ngoại lệ: java.io.IOException: Không thể chạy chương trình "jshint" CreateProcess error = 2, Hệ thống không thể tìm thấy tệp được chỉ định; Từ dòng lệnh thông thường nó hoạt động tốt, mặc dù ... Tôi không có ý tưởng whet vấn đề là: ( –
bạn chỉ đề cập đến kết nối với một ứng dụng node.js đang chạy, nhưng điều này không phải là trường hợp. Các ứng dụng .js bên trong jvm như đã đề cập bởi @Somatik –
Câu trả lời này hoàn toàn không liên quan, tôi tự hỏi tại sao nó lại có số phiếu bầu !! – Willa