2009-11-20 30 views
11

Bạn muốn tạo dll hoạt ảnh cho Window XP Có được phép tạo hoạt ảnh Java2d và xuất dưới dạng dll không ??Có thể sử dụng Java để tạo dll không?

+0

Tại sao bạn phải trả tiền? Tôi nghĩ câu hỏi này khá đơn giản. –

+1

Tôi đoán, và tôi nhấn mạnh đoán, rằng dv đến từ một ai đó có nhu cầu rằng câu hỏi cụ thể hơn về các mục tiêu cấp cao hơn của OP. Cá nhân, tôi nghĩ rằng trong trường hợp này một bình luận sẽ có đủ, nhưng thị hiếu khác nhau. – bmargulies

Trả lời

12

Có. Bạn cần phải viết mã trong C++ để khởi động JVM với giao diện gọi tới JNI và gọi vào nó. Tuy nhiên, bạn có thể thấy khó tạo các cửa sổ theo cách này tích hợp liền mạch với ứng dụng môi trường Windows của bạn để hiển thị hoạt ảnh của bạn. Đây là một cách sử dụng JNI khá cao cấp, và tôi khuyên bạn nên đọc cuốn sách JNI trước khi thử một chút.

+1

Trong khi kỹ thuật chính xác, nó thực sự không phải là một ý tưởng hay (đặt nhẹ) để sử dụng Java cho công việc được mô tả trong câu hỏi trên. –

+0

Đúng. Sẽ có một lý do đặc biệt khủng khiếp. Chỉ thích mã trong java2d so với bản địa sẽ không làm điều đó. – bmargulies

+0

Trong trường hợp của tôi, tôi có thể thử điều đó, bởi vì không có gì giống như JavaFX. Qt đã không dùng mã, nhiều macro và nhiều thứ không cần thiết, trong khi mọi thư viện C++ ui khác có cùng khả năng về cơ bản là một công cụ bố trí HTML sử dụng chuẩn HTML kỳ quặc .... – Johannes

1

Tôi khá chắc chắn bạn chỉ có thể tạo tệp .Jar từ java chứ không phải dlls

+1

Một trong số chúng tôi trả lời câu hỏi mà anh ta muốn hỏi, nhưng tôi không biết một trong số chúng tôi :-) – bmargulies

+0

Tôi khá chắc chắn rằng bạn +1 cho câu trả lời :) – James

+0

@bmargulies: +1 cho bạn: P –

2

Tôi nghi ngờ như vậy, trừ khi có một số công cụ của bên thứ ba ra khỏi đó. Đối với trường hợp của bạn, nơi đồ họa được tham gia, cơ hội thậm chí còn thấp hơn.

0

Tôi đồng ý với bmargulies. Nó có thể khả thi cho một chuyên gia, nhưng nó sẽ là một DLL lớn và bạn muốn trộn các công nghệ không bao giờ được thực hiện để làm việc cùng nhau. Nó không có ý nghĩa để thử điều này, theo ý kiến ​​của tôi.

2

Không, IIRC bạn không thể. Các tệp DLL được liên kết trực tiếp khi được tải. Mã Java cần một jvm, vì vậy bạn chỉ có thể cung cấp một dll bắt đầu một jvm và bắt đầu mã ở đó, nhưng không phải tất cả mọi thứ nhất thiết phải phù hợp trong dll.

Bạn không nên làm điều này. Có vẻ như bạn đang cố gắng sử dụng phương pháp tiếp cận sai cho vấn đề của mình.

1

Có "cầu nối" cho phép mã Java và không phải Java thực hiện cuộc gọi với nhau. Tùy thuộc vào những gì bạn đang cố gắng thực hiện, chúng có thể hữu ích khi bạn có thể viết mã Java của bạn và sau đó gọi nó từ một C++ hoặc C# DLL, tùy thuộc vào ngôn ngữ bạn đang tạo DLL của bạn, mà cũng sẽ xác định loại cầu bạn cần. Tôi chưa bao giờ thấy cây cầu được cung cấp tự do. Tất cả những thứ tôi đã tìm thấy khi tìm kiếm phải được mua.

0

Vâng ...

  1. GCJ is available for Windows.
  2. GCJ là một phần của GCC.
  3. GCC can create dlls.

Có thể kết hợp chúng lại với nhau để tạo tệp DLL bằng GCJ.

+0

Nhưng GCJ vẫn tạo ra các tệp lớp phải không? Và điều đó có nghĩa là họ cần một JVM –

+0

theo http://www.autexier.de/jmau/dev/gcj.html gcj vẫn tạo các tệp lớp –

1

Thực ra, những gì Quentin nói sẽ hoạt động.
Khi bạn biên dịch java thành native với GCJ, trước tiên bạn biên dịch các tệp .java thành các tệp .o cụ thể trên nền tảng. Có lẽ bạn sẽ biên dịch các tệp .o thành một số dll thay vì một số exe. GCJ cũng bao gồm các thành phần như bộ thu gom rác và thư viện java cơ sở. Không ai trong số đó yêu cầu JVM để chạy. Downer là dll sẽ là rất lớn. Ứng dụng "Hello World" đơn giản khi được biên dịch với GCJ~35MB, nhờ vào tất cả các lib mặc định và bộ thu gom rác. Tương tự như vậy, dll của bạn sẽ rất lớn.

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