AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

jin.h -> jin.pas (Java2Delphi)

Ein Thema von opfer.der.genauigkeit · begonnen am 18. Mai 2005
Antwort Antwort
opfer.der.genauigkeit

Registriert seit: 14. Feb 2005
66 Beiträge
 
#1

jin.h -> jin.pas (Java2Delphi)

  Alt 18. Mai 2005, 13:07
Hi,

Ich teste derzeit eine Delphi Unit namens jni.pas.
Diese Unit stellt eine Portierung der Bibliothek jni.h von Sun dar.

Damit ist es möglich über ein Delphiprogramm
eine Javaapplikation zu erzeugen und zu steuern.

Derzeit ergibt sich allerdings ein kleines Problem, dass ich dem Garbage Collector von
Java in die Schuhe schiebe.

----------------------------------------------------------------
Wie folgt:

Erzeuge ich eine JFrame-Instanz ('javax.swing.JFrame') und platziere dynamisch Objekte auf dem
Frame, funktioniert alles soweit problemlos.
Ich kann dann dynamisch Komponenten erzeugen und Methoden zuweisen.
Beende ich den Frame aus dem Frame heraus, also Schließen über das X, komme ich wieder
in mein Delphiprogramm.
Soweit sogut.


Erzeuge ich jetzt aber eine Javaapplikation, indem ich die Mainroutine einer Javaklasse
(public static void main(String[] args)), die dann wiederum im Main einen JFrame erzeugt,
erhalte ich ein interessantes Verhalten.

Beim beenden des Frames, aus sich selbst heraus (über X) wird System.exit(0) ausgeführt, dabei wird auch meine Delphiapplikation aus dem Speicher radiert.
----------------------------------------------------------------

Das ist natürlich etwas ungünstig.

Das Problem müsste evtl. bekannt sein, da ich mir nicht wirklich vorstellen kann,
dass das n Spezialfall ist, wenn man das Interface verwendet.

a) Kann jemand von euch mir evtl. ein paar Links geben, in denen dieses Problem beschrieben wird.

b) Kann ich das Javaprogramm so beenden, dass der GC evtl. nur den Frame freigibt oder vllt. den GC ganz ausschalten? Wobei das natürlich nicht die feine Programmiererart wäre. Dient aber nur zu Testzweicken.

c) Wie wird der JFrame nativ beendet, wenn nicht über System.exit(0) bzw. warum glaubt ihr, räumt der GC mein Programm mit auf, wenn ich das ganze über eine Applikation aufrufe und nicht nur den reinen Frame?

Da der GC IMHO alle "nicht mehr benötigten" Refferenzen auflöst (und somit auch mein Delphiprogramm findet), müsste ich das Javaprogramm eventuell in einen eigenen Prozess abspalten. Das möchte ich aber nicht wirklich umsetzen müssen.

Vielleicht kennt jemand ja eine geschmeidigere Lösung.

Thx für Vorschläge oder Hinweise.
Stellen Sie sich bitte Zirkusmusik vor.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz