2009-11-20 15 views
11

Möchten Sie eine Animations-DLL für Windows XP erstellen Ist es in Ordnung, Java2d-Animationen zu erstellen und als dll zu exportieren?Ist es möglich, Java zu verwenden, um dll zu erstellen?

+0

Warum der Downvote? Ich denke, diese Frage ist ziemlich einfach. –

+1

Ich würde raten, und ich betone, dass das DV von jemandem kam, der wünschte, dass die Frage spezifischer über höhere Ziele des OPs sei. Ich persönlich denke, dass in diesem Fall ein Kommentar ausgereicht hätte, aber der Geschmack variiert. – bmargulies

Antwort

12

Ja erstellen. Sie müssen Code in C++ schreiben, um die JVM mit der Aufrufschnittstelle zu JNI zu starten und sie aufzurufen. Es kann jedoch schwierig sein, auf diese Weise Fenster zu erstellen, die sich nahtlos in Ihre Windows-Umgebung integrieren, um Ihre Animation anzuzeigen. Dies ist eine ziemlich fortgeschrittene JNI-Verwendung, und ich würde empfehlen, das JNI-Buch zu lesen, bevor Sie ein wenig davon ausprobieren.

+1

Obwohl es technisch korrekt ist, ist es wirklich keine gute Idee, Java für den in der obigen Frage beschriebenen Job zu verwenden. –

+0

Wahr. Es müsste einen ganz besonderen Grund geben. Einfach nur java2d gegen native einprogrammieren würde es nicht tun. – bmargulies

+0

In meinem Fall könnte ich das versuchen, weil es nichts wie JavaFX gibt. Qt hat Code, viele Makros und so viele unnötige Dinge veraltet, während jede andere C++ ui-Bibliothek mit den gleichen Fähigkeiten im Grunde eine HTML-Layout-Engine ist, die den schrulligen HTML-Standard verwendet .... – Johannes

1

Ich bin ziemlich sicher, dass Sie nur .jar-Dateien von Java nicht dlls

+1

Einer von uns beantwortet die Frage, die er stellen möchte, aber ich habe keine Ahnung, wer von uns :-) – bmargulies

+0

Ich bin mir ziemlich sicher, dass Sie +1 für die Antwort :) – James

+0

@bmargulies: +1 für Sie auch: P –

2

Ich bezweifle es, es sei denn, es gibt einige Drittanbieter-Tools da draußen. Für den Fall, dass Grafiken beteiligt sind, sind die Chancen noch geringer.

0

Ich stimme mit bmargulies überein. Es ist wahrscheinlich für einen Experten machbar, aber es wäre eine große DLL und du würdest Technologien mischen, die niemals zusammen arbeiten. Es macht keinen Sinn, dies meiner Meinung nach zu versuchen.

2

Nein, IIRC können Sie nicht. DLLs werden beim Laden direkt verlinkt. Java-Code benötigt ein jvm, so dass Sie nur eine DLL zur Verfügung stellen können, die eine jvm startet und Code dort startet, aber nicht alles passt in die DLL.

Sie sollten dies nicht tun. Es sieht so aus, als ob Sie versuchen, den falschen Ansatz für Ihr Problem zu verwenden.

1

Es gibt "Bridges", die Java und Nicht-Java-Code erlauben, sich gegenseitig aufzurufen. Je nachdem, was Sie erreichen möchten, können diese nützlich sein, da Sie Ihren Java-Code schreiben und dann von einer C++ - oder C# -DLL aufrufen können, abhängig davon, in welcher Sprache Sie Ihre DLL erstellen, was auch bestimmen wird Brücke, die du brauchst. Ich habe jedoch noch nie eine frei zur Verfügung gestellte Brücke gesehen. Alle, die ich beim Anschauen gefunden habe, mussten gekauft werden.

0

Well ...

  1. GCJ is available for Windows.
  2. GCJ ist Teil von GCC.
  3. GCC can create dlls.

Es könnte möglich sein, das zusammen zu bauen DLLs mit GCJ.

+0

Aber GCJ produziert immer noch Klassen-Dateien richtig? Und das heißt, sie brauchen eine JVM –

+0

nach http://www.autexier.de/jmau/dev/gcj.html gcj erzeugt immer noch Klassendateien –

1

Eigentlich sollte Quentin gesagt sollte funktionieren.
Wenn Sie Java mit GCJ kompilieren, kompilieren Sie zuerst die .java Dateien in plattformspezifische .o (Objekt) Dateien. Vermutlich würden Sie die .o Dateien in eine dll anstatt einer exe kompilieren. GCJ enthält auch Komponenten wie die Garbage Collector- und Base-Java-Bibliotheken. Keine von denen erfordert eine JVM zu laufen. Der Nachteil ist, dass die dll wäre riesig. Eine einfache "Hello World" -App, wenn sie mit GCJ kompiliert wird, ist ~35MB, dank all den Standard-Bibliotheken und dem Garbage Collector. Ebenso wäre Ihr dll riesig.

Verwandte Themen