Bat-Datei aus Eclipse mit anderem JRE starten

Hallo Leute! Da mich das passive Nutzen des Forums und die große weite Google-Welt leider nicht weitergebracht haben, habe ich mir nun mal ein Benutzerkonto angelegt.

Ich plane das folgende - eigentlich triviale - Unterfangen: Ich habe eine Java-Anwendung, die als ausführbares Jar-Archiv gepackt ist, und möchte sie aus Eclipse heraus starten. Dabei soll allerdings das Ausführungsverzeichnis dem Workspace-Verzeichnis entsprechen und ich möchte Parameter übergeben können.

Das alles ist eigentlich kein Problem, ich nutze einfach die folgende Bat-Datei:

cd %~f0\..
start javaw -jar .\framework\LatexLittleHelper.jar

Eigentlich. Das Problem ist, dass Eclipse dabei meint, den javaw-Befehl mit seiner konfigurierten JRE ausführen zu müssen. Dieses ist aber eine 1.6-JRE und die Anwendung ist in 1.7 kompiliert (ich nutze die nio2-Bibliotheken). Starte ich die Bat-Datei aus dem Dateiexplorer, funktioniert alles einwandfrei, denn der Systemstandard ist eine 1.7er JRE.

Okay, wieso nutze ich 1.6 in Eclipse und 1.7 im System? Das liegt am Unternehmens-Setup, das das so vorsieht. Daran lässt sich nichts drehen. Aus dem Grund kann ich auch keine absolute Pfadangabe á la „start C:\Pfad\zum\JRE\bin\javaw.exe -jar .\framework\LatexLittleHelper.jar“ benutzen, da die Möglichkeit besteht, dass sich dieser absolute Pfad ohne meinen Einfluss ändert, und nicht nur ich diese Anwendung nutzen möchte. Und achso, %JAVA_HOME% ist natürlich auch nicht gesetzt und ich kann das nicht ändern (s. o.).

Meine Frage lautet also: Wie schaffe ich es, eine Java-Anwendung mithilfe einer Bat-Datei aus Eclipse zu starten, dabei aber die im System standardmäßig eingestellte JRE zu verwenden? (Jetzt wisst ihr, warum Google dazu nichts ausspuckt^^)

Kurz noch zum Hintergrund, weil das ja schon ein ziemlicher Sonderweg ist und sonst bestimmt Nachfragen kommen :slight_smile: Wieso überhaupt die Bat-Datei aus Eclipse? Ich nutze Eclipse mit dem TeXlipse-Plugin als LaTeX-Editor. Bei LaTeX gibt es verschiedene Befehle, die es häufiger mal auszuführen gilt z. B. das Kompilieren der Bibliotheken (bibtex…) oder des Glossars (makeindex…) und dafür hat sich der Schnellzugriff über die Bat-Dateien bewährt. Es ist einfach nichts schneller **und ** einfacher als ein Doppelklick im Project Explorer.

Ich danke euch schonmal für eure Mühe :slight_smile:

Beste Grüße
Alex

Ich kann nicht so ganz verstehen, wo genau das Problem ist.
Du hast eine batch in einem jar und von da aus willst du etwas ausführen… ?
Und du kannst ja in Eclipse im Workspace einstellen, was du für ein JRE verwenden willst, hat nichts mit Unternehmens-Setup zu tun.

P.S. maven kann auch tex und dabei musst du nicht mal klicken :wink:

Hallo XHelp,

danke erstmal für deine Antwort.

Nein, die Bat-Datei liegt nebem dem Jar (bzw. eine Ordnerebene höher) und mithilfe dieser möchte ich die Jar-Datei aufrufen.

Mit den Workspace-Einstellungen hast du Recht, allerdings kann man da natürlich nur die JREs wählen, die in Eclipse konfiguriert sind http://img600.imageshack.us/img600/8773/hufc.jpg (: Und dazu bräuchte man dann wieder den absoluten Pfad, was nicht geht, s. o.

Maven klingt interessant, allerdings erscheint es mir doch etwas zeitaufwendig, das gesamte System umzubauen.

Also du hast in eclipse ein mit 1.7 kompiliertes Projekt in einem Workspace, wo nur 1.6 möglich ist. Von da aus startest du eine externe Batch-Datei, die wiederum ein jar startet, welches dann 1.6. jre benutzt?
Bist du dir in jedem der Punkte sicher?
Beschreibe mal genau die Schritte die du machst und auch genau die Meldungen, die du bekommst (ggf. mit Screenshots)

Ah, ich glaub, ich weiß, warum das so merkwürdig klingt: Es handelt sich bei besagter Eclipse-Version nicht um die Installation, mit der ich die Java-Anwendung geschrieben habe. Das sind zwei unterschiedliche Installationen mit unterschiedlichen JDKs/JREs: Eine rein für Java, eine rein für LaTeX.

Ich mach aber gleich mal Screenshots. Sorry, dass das so kompliziert ist.

Okay, also das ist die Eclipse-Installation, die als LaTeX-Editor dient und von der auch der obige Screenshot stammt: http://img11.imageshack.us/img11/6258/q6wh.jpg (ich hab mal die uninteressanten Dateien weggemacht).

Wenn ich da jetzt die markierte Bat-Datei doppelklicke, bekomme ich einen Fehler, dass die JRE-Version zu niedrig wäre (vgl. Stackoverflow: java.lang.UnsupportedClassVersionError). Diesen bekomme ich nicht, wenn ich sie im Dateiexplorer doppelklicke.

“java -version” verrät mir auch, wieso dieser Fehler auftritt:

java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) Client VM (build 17.0-b16, mixed mode)

Starte ich dieselbe Bat-Datei an derselben Stelle im Dateisystem mit “java -version” im Windows-Dateiexplorer kommt:

java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b16)
Java HotSpot(TM) Client VM (build 23.25-b01, mixed mode, sharing)

Da ersteres genau der Version der Eclipse-Installation entspricht, denke ich, dass Eclipse der Bat-Datei “ihre Java-Version aufdrängt”.

Aber offensichtlich hast du doch Zugriff auf eine “Eclipse Installation” mit JDK7. Das hat dann doch nichts mit “Unternehmens-Setup”.
Kernaussage bleibt: willst du Eclipse mit JDK7, richte dir Eclipse mit JDK7 ein. Ansonsten wird es da bestimmt ein Workaround geben, aber wieso es nicht gleich sinnvoll machen?

Ja, im Prinzip hast du Recht, das hatte ich am Anfang auch schon überlegt. Aber leider nutze ich das nicht alleine, sondern ich will das auch anderen Kollegen zur Verfügung stellen. Und bei jedem ein JDK7 dafür zu installieren, erscheint mir doch zu aufwendig. Zumal ja das JRE schon vorhanden ist und nur nicht genutzt wird :confused:

Ich seh schon, ich werd um einen Workaround mit absoluten Pfaden nicht drum herum kommen :frowning: Schade, schade. Trotzdem nochmal vielen Dank für deine Hilfe und wenn dir noch was einfällt, freue ich mich auf eine weitere Antwort :slight_smile: