AGB  ·  Datenschutz  ·  Impressum  







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

JRE in Delphi

Ein Thema von Corelgott · begonnen am 15. Dez 2008 · letzter Beitrag vom 16. Dez 2008
Antwort Antwort
Benutzerbild von Corelgott
Corelgott

Registriert seit: 11. Apr 2003
Ort: Lübeck
213 Beiträge
 
Delphi 2006 Enterprise
 
#1

JRE in Delphi

  Alt 15. Dez 2008, 15:22
Hi @ all,

folgendes Problem ist bei mir aufgekommen:

Ich habe Hardware mit der ich über eine DLL-Datei rede. Anscheinden benutzt diese DLL-Datei ein Java-Archiv (Jar) um wiederum auf die Hardware zu kommen. Warum das der Hersteller so macht? Fragt mich bitte nicht; 3rd Party Closed Source.

Das Problem ist nun Folgendes: Wir haben recht viele Clients, die schon eine andere Version der JRE installiert haben. Bei der Paralell-Installation von mehrern JREs haben wir schon Probleme mit anderer Software gesehen.

Somit fällt es leider aus (IT sacht nö) 2 JREs zu installieren. Ich kann mich erinnern, dass man in JAR-Dateien eine komplette VM / JRE hineinpacken kann, um aus einer JAR eine Standalone EXE zu erhalten...

Hat man irgend eine Chance in eine Delphi-Exe irgendwie eine JRE mit hineinlegen, diese dann zu Starten und die Jar dazu bringen, diese auch noch zu nutzen? Also nach dem Motto, durch die EXE ist die JVM ist an, und dann verbindet sich die JAR?

Das Ziel ist es die JRE in der speziellen Version nicht auf dem System installieren zu müssen. Die JRE aus dem RAM wäre natürlich das schöneste... Aber wenn ich sie entpackt irgendwo liegen habe ginge es auch... Solange sie sich nicht in den Paths registriert / nicht installiert werden muss.

Es ist bloß recht schwer zu sagen, wie die die DLL auf die JAR zugreift... Support vom Hersteller ist keiner zu erwarten... (Amerikanische Firma - Gute Hardware - Software von irgend 'ner unterbezahlen Kraft, die seit ca. 200Jahren nicht mehr bei der Firma ist... Andere Programmierer? - Von Zeit zu Zeit vielleicht mal eingestellt. Alles Freelancer für genau 2 Zeilen Code)

Oder verfolge ich da den falschen Ansatz? Hat jemand eine andere / bessere Idee?

Vielen Dank für's Nachdenken im voraus!

Gruß

Corelgott
wer Rächtschraibfehler findet daaf sie behalten...
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: JRE in Delphi

  Alt 15. Dez 2008, 15:29
Wie wäre es damit:

Vollständige Java-Runtime als Unterverzeichnis der eigenen Anwendung hinterlegen und dann mit JNI darauf zugreifen (JNI_CreateJavaVM in der dynamischen Variante)
JNI-übersetzung bekommst du hier.

Kosted jedoch ein paar Tage um die Logik dahinter zu verstehen. Aber dann kannst du wenn du willst auch einen Apache-Server damit dynamisch ohne installiertes Java laufen lassen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Marcel Gascoyne
Marcel Gascoyne

Registriert seit: 18. Nov 2003
Ort: Uetersen
271 Beiträge
 
Delphi 2005 Architect
 
#3

Re: JRE in Delphi

  Alt 15. Dez 2008, 15:31
Wenn Dein Programm eine spezifisches JRE braucht packt man dieses in der Regeln in ein Unterverzeichnis der Anwendung. Ein JRE muss nicht installiert werden.

Es genügt dann Java aus diesem Verzeichnis aufzurufen, das kannst Du auch aus einem Delphi Programm machen.

z.b. so:

Code:
<path>\jre\bin\javaw.exe -jar myapp.jar de.myapp.Main
Gruß,
Marcel
Marcel Gascoyne
Der Fehler sitzt immer vor der Tastatur
  Mit Zitat antworten Zitat
Benutzerbild von Corelgott
Corelgott

Registriert seit: 11. Apr 2003
Ort: Lübeck
213 Beiträge
 
Delphi 2006 Enterprise
 
#4

Re: JRE in Delphi

  Alt 15. Dez 2008, 22:11
Hi Marcel Gascoyne,

super idee! Ich würde es genau so machen, wenn ich dir JAR-Datei direkt laden würde! Aber wie gesagt: Ich lade eine DLL keine JAR direkt! Die DLL hat als Depenancy eine JAR somit kann ich mit der JRE keinen direkten aufruf machen..

Dennoch Danke...

Gruß

Corelgott
wer Rächtschraibfehler findet daaf sie behalten...
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: JRE in Delphi

  Alt 15. Dez 2008, 22:25
hm.. nur so ein Gedanke, das ist aber, selbst wenn es hinhaut Flickschusterei...

das JRE in ein Programmunterverzeichnis und die DLL samt Jar mit ins bin verzeichnis des JRE...

wenn die DLL nur "java ... ..." aufruft müsste sie doch dann die naheliegendste nehmen also die neben der DLL... oder denk ich grad völlig quer?
  Mit Zitat antworten Zitat
Benutzerbild von Marcel Gascoyne
Marcel Gascoyne

Registriert seit: 18. Nov 2003
Ort: Uetersen
271 Beiträge
 
Delphi 2005 Architect
 
#6

Re: JRE in Delphi

  Alt 16. Dez 2008, 00:14
Du kannst innerhalb Deines Prozesses die Umgebungsvariablen JAVA_HOME und PATH so ändern das Deine lokale JRE verwendet wird. Mit der JCL z.b. so:

Delphi-Quellcode:
SetEnvironmentVar('JAVA_HOME','<path>\jre');
SetEnvironmentVar('PATH','%JAVA_HOME%\bin;%PATH%');
Wenn Du nun die DLL lädst sollte Deine lokale JRE verwendet werden.

Gruß,
Marcel
Marcel Gascoyne
Der Fehler sitzt immer vor der Tastatur
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#7

Re: JRE in Delphi

  Alt 16. Dez 2008, 14:15
Zitat von Marcel Gascoyne:
Du kannst innerhalb Deines Prozesses die Umgebungsvariablen JAVA_HOME und PATH so ändern das Deine lokale JRE verwendet wird. Mit der JCL z.b. so:

Delphi-Quellcode:
SetEnvironmentVar('JAVA_HOME','<path>\jre');
SetEnvironmentVar('PATH','%JAVA_HOME%\bin;%PATH%');
Wenn Du nun die DLL lädst sollte Deine lokale JRE verwendet werden.

Gruß,
Marcel
JAVA_HOME ist normalerweise nicht für die JRE sondern nur für das JDK gedacht.
Michael Justin
habarisoft.com
  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 02:01 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