ich habe mal ein ganz anderes Problem wozu ich Beratung bräuchte.
Ich würde gerne eines meiner Javaprojekte auf einem Windows PC ausführen, ohne dass Java darauf installiert ist. Ich bin nicht Admin am PC und kann es nicht installieren.
Gibt es irgendwie eine Möglichkeit eine als JAR verpackte Datei auszuführen? Möglicherweise mit sowas wie „Java Portable“? Oder dass irgendwo der Javaordner liegt und ich dann für die Datei bei „Öffnen mit“ die dazugehörige Javadatei angebe?
Mich würde einmal interessieren, ob und wenn ja wie man das regeln könnte.
Und bitte keine Antwort à la:
Bitte den Admin Java zu installieren.
Wenn Java nicht installiert ist, hat das sicherlich einen Grund.
Du hast entweder die Möglichkeit die JRE mit ins jar File zu embedden, Launch4J kann das beispielsweise.
Oder du legst die JRE neben das jar File in einen eigenen Ordner. Über eine .bat oder .sh Datei kann man das dann prima starten. (siehe Marco13s Antwort oben)
Wunderschönen Guten Tag und vielen Dank Euch für Eure Antworten!
Ich würde die Variante ohne Launch4J bevorzugen, weil ich eine generelle Lösung haben möchte.
Ich werde mal googlen, wie ich mir das ganze Zusammenschrauben kann mit der .bat Datei. Wird ja hoffentlich nicht schwer sein.
Was das transportable jre-Zeuchs angeht: Sind die jre-Dateien in Windows und auf dem Mac beide gleich? Kann ich da den Ordner vom Mac reinschieben? Ansonsten muss ich noch irgendwo aus dem Internet eine Windows-jre fische. Immer wenn ich google, krieg ich nur eine exe angedreht. Ich stelle mich wahrscheinlich aber auch wieder nur Unfähig an.
Gruß
Lukas
Edit: Mit generelle Lösung meine ich Plattformunabhängig. Auch außerhalb Windows. Falls das nicht klar ersichtlich ist.
Nein, die JRE ist Plattformabhängig.
Willst du deine Anwendung bspw. für Windows, Linux und Mac veröffentlichen müsstest du drei JREs mitliefern, was die Größe deiner Anwendung allerdings ziemlich in die Höhe treiben würde. Falls du die JRE wirklich mitliefern willst, solltest du für jede Zielplattform einen Download anbieten in dem dann nur die jeweilige JRE und das Startskript drin sind.
vielen dank für Deine Antwort!
Okay, dann weiß ich, wie ich das machen muss, danke.
Aber in meinem aktuellen Fall ist es wirklich nur Windows.
Ich habe auch nur wenig Zeit immer, an dem Windows PC dran zu sein, das heißt ich muss das an meinem Mac entwickeln. Irgendwelche exe-Dateien bringen mich nicht weiter, die kann ich hier nicht öffnen.
Immer wenn ich nach der Windows Bibliothek (32bit) für Java google, krieg ich ne Exe angedreht.
Kann mir jemand sagen, wo ich die als Ordner downloaden kann oder sie mir ggf. per gezipt per PN schicken?
Die bat-Datei pack ich mir dann noch zusammen, das wird ja hoffentlich nicht schwer via Google herauszufinden sein.
Hmm, ich will nicht böse klingen, aber wie wäre es mal direkt auf oracle.com zu suchen ? Da gibts auch die Win-Binaries als pack …
btw : “Mit generelle Lösung meine ich Plattformunabhängig.” -> Dann wäre es besser Java als Vorraussetzung anzugeben und nur deinen eigenen Code zu liefern. Es ist nämlich eigentlich nicht deine Aufgabe Java unter den Leuten zu verteilen. Würde man bei DotNET auch nicht machen.
Installier eine virtuelle Maschine mit Windows auf deinem Mac (VMWare, Virtualbox, Parallels,…) Du kannst doch nicht ernsthaft auf deinem Mac entwickeln und zum Testen jedesmal physikalisch zu einem Windows PC laufen - dazu musst du ja aufstehen?
ich bin froh, dass ich den Windows Quatsch seit mehreren Jahren los geworden bin. Ich habe auch nicht vor, für die 1-2 Programme, die ich für Mac oder Ubuntu mal nicht finde derartige Schadware auf meinen Mac zu spielen.
Ich entwickle meine Programme immer für den Eigenbedarf für Zuhause, also brauche ich da auch kein Windows zum testen.
Nun brauche ich ein einziges mal ein Java Programm für Windows für einen anderen PC und der Admin ist zu faul da Java raufzuspielen. Punkt.
btw : „Mit generelle Lösung meine ich Plattformunabhängig.“ → Dann wäre es besser Java als Vorraussetzung anzugeben und nur deinen eigenen Code zu liefern. Es ist nämlich eigentlich nicht deine Aufgabe Java unter den Leuten zu verteilen. Würde man bei DotNET auch nicht machen.
Ich hatte zu Anfang meines Postes dies hier geschrieben:
Und bitte keine Antwort à la:
Bitte den Admin Java zu installieren.
Wenn Java nicht installiert ist, hat das sicherlich einen Grund.
Wenn ich als Nutzer frage, wie es möglich ist, sich Java zu nutzen zu machen, ohne Java zu installieren und dann will ich meine Zeit nicht mit Antworten vergeuden, die mich darauf hinweisen, dass man Java installieren solle…
Hmm, ich will nicht böse klingen, aber wie wäre es mal direkt auf oracle.com zu suchen ? Da gibts auch die Win-Binaries als pack …
ich danke euch beiden! tar.gz-Dateien hm, das hatte ich wohl irgendwie übersehen. Naja, im Nachhinein weiß man es immer.
Also ähm, ich hätte nun die abschließende Frage der Ausführung.
Ich möchte mein Projekt im Autostart ausführen.
Und den jar-Ordner möglicherweise einfach in meinem Dokumente Ordner? Wenn ich das im Autostart habe, startet doch der Ordner selbst auch mit, oder? Also dann öffnet sich der Explorer meine ich.
Also würde ich gerne folgendes Konzept verfolgen. Widersprecht mir bitte, wenn ich falsch liege oder irgendein Pfad falsch ist, ich kenne mich mit Windows nicht aus.
Ich nutze im Übrigen diese Quelle: Starten einer Java Application mit Batchdatei
===========
In den Dokumenten liegt eine Datei programm.bat.
Ihr Inhalt ist selbiger:
set java=C:\Users\Lukas\Documents\JavaAutostart\jre1.8.0_31\bin\java.exe
%java% -jar C:\Users\Lukas\Documents\JavaAutostart\Autoprogramm.jar
Und in den Dokumenten liegen im entsprechenden Pfad die Bibliothek und die jar selbst.
Im Autostart ist dann eine Verknüpfung auf diese BAT-Datei. Das sollte diese ja ausführen.
Ist das alles so richtig? Und vor allen Dingen: Kann ich das als eingeschränkter User überhaupt so ausführen?
(Hatte sich das eigentlich geklärt? Ich denke, so eine BAT im Autostart sollte gehen, aber die Rechte-Frage müßte ggf. geklärt werden - geht es NUR darum? (Und: Hast du es mal ausprobiert? :D))
bei der Aktion ist es am Ende auch egal ob CD, DVD, BluRay, geile Scheibe - es geht ums Prinzip. Das Thema lief vor ein paar Wochen schonmal und dort wurde auch die Vor- und Nachteile abgewägt.
Das was du in Post #13 gemacht hast ist halt mit hart kodierten Pfaden. Das funktioniert vielleicht bei dir, aber bei so ziemlich jedem anderen Benutzer nicht. Der Link von L-ectron-X zeigt eigentlich auch schon die Lösung. Ich habs mal aufs “Wesentliche” reduziert. Eigentlich brauchst du nur eine start.bat in der folgendes steht:
"./jre/bin/java" -jar YourTool.jar
Bei diesem Skript gehe ich dann davon aus, dass neben jener start.bat auf gleicher Ebene auch noch die entsprechende .jar-Datei liegt und der jre-Ordner.
Es gibt auch sicherlich Möglichkeiten statt einer .bat-Datei eine .exe-Datei zu generieren, sieht dann für den Benutzer “normaler” aus. Aber wenn du automatisch noch ne Verknüpfung auf dem Desktop oder dergleichen anlegst ist das eigentlich egal was hintendran liegt.
@TO
Mir ist bewusst das du in deinem Eingangspost erwähnt hast das du Posts wie “Frag halt den Admin” nicht hören willst, aber es gibt da nun mal dieses schöne Zauberwort : “Systemvoraussetzungen”. Und eine funktionsfähige JRE (egal ob nun systemweit “installiert” oder halt mitgeliefert) ist für eine in Java geschriebene Anwendung nun mal DIE Voraussetzung Nummer 1 schlechthin - ohne gehts nicht.
Du hast gebeten das wir dir Möglichkeiten liefern wie du sowas umsetzen kannst. Eine, auch produktiv viel genutzte, Möglichkeit die gerade im Windows-Umfeld genutzt wird kam sogar Mehrfach : Launch4J. Das ist kostenfrei, und soweit mir bekannt ist ist es sogar cross-platform, also das du auf deinem Mac eine Windows-Exe bauen kannst ohne selbst eine Win-VM aufsetzen zu müssen.
Natürlich gibt es auch kostenpflichtige Varianten wie z.B. Jar2Exe, was dann sogar Dinge wie Service oder Autorun unterstützt (habe damit selbst was als Service laufen).
Ich find es schon ein wenig mies das du (zumindest so mein subjektiver Eindruck) ziemlich angepisst/agressiv reagierst nur weil man die common-practice anbietet.
Auch fand ich es etwas irritierend wie du von “oracle.com” auf “java.com” kommst. Ich hätte es dir nicht so geschrieben wenn ich es nicht gewusst hätte das man eben an bereits erwähnter Stelle die Binaries als tgz laden kann. Dafür das du es übersiehst / nicht findest kann ich nichts, also geh mich desshalb auch bitte nicht so an.
Zu dem was Gonzo sagt noch ein Beiwort : Es gibt eine sehr gute Lib mit der man unter Windows Desktop-Verknüpfungen anlegen kann : JShellLink
Ich empfehle beim Download die Variante “jshortcut-0.4-oberzalek”. Ich weis jetzt zwar nicht genau was alles im Vergleich zur “original”-Version anders ist, aber sind wohl hier und da ein paar Fixes. Müsste man noch mal genauer prüfen.
Verwendung dank Doc selbsterklärend.
Der Vorteil : für einen 0-8-15-Windows-User sieht es auch wie jede andere Verknüpfung auf seinem System, gleich ob da ne Exe oder ne Bat hinterhängt.
Ansonsten wurde alles andere schon gesagt. Nun liegt es an dir. Ich würde dir aber auch empfehlen wenigstens zum Testen eine VM mit Windows aufzusetzen. So brauchst du nicht immer physisch zur Windows-Maschine nur weil mal doch was nich ganz hinhaut.
Ich find es schon ein wenig mies das du (zumindest so mein subjektiver Eindruck) ziemlich angepisst/agressiv reagierst nur weil man die common-practice anbietet.
Entschuldige bitte, wenn Dir das so vorkam. War wohl nen schlechter Tag. Ich bin immer dankbar für alle Leute, die sich Zeit nehmen meine obskuren Probleme zu bearbeiten. Das sollte nicht bösartig grauenfürchterlich schrecklich wirken.
Das Problem hat sich übrigens gelöst, es läuft nun alles, wie es soll.
Vielen Dank allen, die produktive Vorschläge erbracht haben.
Schönes Wochenende
Bussy