2008-09-24 42 views
23

Chúng tôi đã phát triển một ứng dụng Java và muốn sử dụng ứng dụng này từ một máy khách C#. Ứng dụng có phụ thuộc vào Spring, Log4j, ...Làm thế nào để gọi mã Java từ C#?

Cơ chế hiệu quả nhất - tạo DLL (s) từ mã Java, ... - để đạt được điều này?

+0

Bản sao có thể có của [Sử dụng các lớp Java với C#] (http://stackoverflow.com/questions/171717/using-java-classes-with-c-sharp) – Pekka

Trả lời

24

IKVM!

Nó thực sự tuyệt vời. Vấn đề duy nhất là nó cần thêm ~ 30MB cho dự án. log4net và Spring .NET cũng có sẵn, nhưng nếu sống bằng mã hiện có, hãy đi theo tuyến ikvm.

+3

Trong phiên bản mới nhất của IKVM, thư viện JDK được chia thành các hội đồng riêng biệt. Tùy thuộc vào những gì bạn cần, có thể bạn sẽ không còn đủ 30MB hành lý nữa. Việc lắp ráp lõi jdk là khoảng 5 MB. –

2

cách khác bạn có thể viết lớp webservice/xmlrpc giữa hai.

Tôi có vẻ nhớ rằng có một công cụ gọi grassshopper sẽ biên dịch mã .Net của bạn thành mã bytecode JVM.

Tôi cũng nghe những điều tốt đẹp về IKVM

11

Tôi là tác giả của jni4net, cầu nối giữa các nguồn mở giữa JVM và CLR. Nó được xây dựng trên đầu trang của JNI và PInvoke. Không cần mã C/C++. Tôi hy vọng nó sẽ giúp bạn.

+0

Quan điểm thực sự thú vị, congrats ... – gustavodidomenico

0

Có rất nhiều lựa chọn,

  1. socket

  2. dịch vụ web

  3. nhắn bus

  4. Sử dụng/bất kỳ cơ sở dữ liệu! (Xin lỗi nếu âm thanh ngớ ngẩn)

Dưới đây là một cuộc thảo luận có thể được thuận tiện: https://gridwizard.wordpress.com/2015/01/14/java-and-dotnet-interop

Thật phụ thuộc vào những gì bạn đang xây dựng!

+0

OP đặc biệt yêu cầu 'gọi'. Tất cả các phương pháp bạn xác định liên quan đến 'gửi tin nhắn'. Tùy chọn cơ sở dữ liệu cuối cùng được cho là thậm chí còn ít trực tiếp hơn bằng cách yêu cầu bỏ phiếu của một bảng dàn dựng. – Pekka

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