2013-01-11 33 views

Trả lời

3

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.

https://github.com/nearinfinity/node-java

+0

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à: ( –

+0

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 –

+0

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

0

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.

0

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(); 
     } 
    } 
} 
+4

Đ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

Các vấn đề liên quan