Batch / Shell-Skript in Jar.Datei einbinden?

Rames

Neues Mitglied
Hi,
Im Studium haben ich Programm entwickelt, das einige mathematische Algorithmen und Funktionen abbildet bzw. ausführen kann. Neben einfachen Grundrechenarten habe ich hier u.A. eine simple Form der Bruchrechnung, einfache Matrix-Verarbeitung und einen Simplex-Optimierungsalgorithmus implementiert. Alles funktioniert auch soweit.

Mein Problem ist jetzt das Folgende: heute war Zwischenpräsentation meiner Arbeit. Der Prof. war auch sehr zufrieden mit den Algorithmen. Sein einziger Kritikpunkt war, dass das Programm für den Endanwender selbst mit drei Dateien daherkommt - nämlich

core.jar
startLinux.sh
startWindows.bat

Seiner Meinung nach, hat das Programm letzlich dem Endanwender nur eine einzige Datei zu bieten. Das Programm soll auch via Draufklicken zu starten sein - also nicht nur über Konsole / Terminal. Gleichzeitig soll es sowohl unter Windows (Xp, Vista und 7), als auch unter Linux (Ubuntu ab 10.04.) funktionieren.

Zwar weiß ich, wie ich in Java auslesen kann, welches Betriebssystem auf dem Rechner wohnt, jedoch komme ich nicht weiter mit dem öffnen per klick.
Könnt Ihr mir da helfen?

Ein- und Ausgabe erfolgt in aktueller Version nur in Konsole / Terminal - grafische Oberfläche ist für das nächste Semester geplant. Folglich ist meines Wissens ein Start über shell-Skript / batch-Skript notwendig, um dem User die Eingabe von
"java -jar core.jar" zu ersparen. Letzlich steht in den Skript-Dateien natürlich lediglich genau dieser Befehl.

Lösungskonzept
Mein aktuelles Konzept sieht vor, alle drei Dateien in eine simplex.jar einzubinden. Diese soll nur eine weitere Klasse enthalten, in welcher geprüft wird, ob es sich um ein Linux- oder um ein Windowsbetriebssystem handelt. Mit Hilfe einer einfach If-Condition soll entsprechend des Betriebssystems aus die entsprechende Skript-Datei ausgeführt werden

Fragen

Wie schaffe ich es, dass eine jar-Datein direkt per Doppelklick ausführbar ist?

Wie binde ich die Windows-Konsole und das Linux-Terminal und zusätzlich die beiden Skript-Dateien in die JVM ein?
Ich stelle mir das so vor: die Konsole / das Terminal wird aus Java heraus geöffnet und kann zudem den Befehl java -jar core.jar verarbeiten.

Mfg
Rames
 

freez

Top Contributor
Du kannst dein Programm als Runnable Jar aus jeder gängigen Entwicklungsumgebung exportieren. In Eclipse exportierst du einfach als Runnable Jar und gibst deine Main Class an. Damit kannst du die Jar per Doppelklick starten.

Dein Lösungsansatz sollte damit überflüssig werden.
 
Zuletzt bearbeitet:

Rames

Neues Mitglied
Hallo,
Ich habe gerade mal geschaut, aber offenbar hat mich meine Erinnerung nicht getrogen.

Wenn ich unter Eclipse die Option "runnable Jar" auswähle, dann findet Eclipse keine Launch Configuration.
Offenbar akzeptiert es die einfache main(String[] args) nicht als solche.

Irgendwie hatte ich bei reinen Konsolenprogrammen noch im Kopf, dass ich da schon mal solche Probleme mit hatte. Daher war ich den Weg gegangen, mir die Skripts zu schreiben, die dann einfach nur diesen simplen Befehl ausführen.

Oder mache ich gerade einfach nur was glorreich falsch?

Liebe Gruß

Edit: Die main() wird auch ansonsten korrekt erkannt, da ich eine normale .jar erzeugen kann.
 

Michael...

Top Contributor
Seiner Meinung nach, hat das Programm letzlich dem Endanwender nur eine einzige Datei zu bieten.
meiner Meinung: Bull....

Der Anwender kann ja je nach System entweder die bat oder shell per Doppelklick starten und die startet das Java Programm.

Ein Runnable Jar nutzt bei einer "Konsolenanwendung" wenig. Sowas ist nur für GUI Applikationen gedacht, da diese "runnable" jars überlicher Weise mit javaw und somit ohne cmd oder shell gestartet werden.
 

freez

Top Contributor
meiner Meinung: Bull....

Geht mir ebenfalls so, aber ich denke der Prof hat da wohl andere Hintergedanken. In der Realität könnte ich da auch mehrere Klassen mit "main" haben, die unterschiedliche Dinge erledigen (JavaWord / JavaExcel / JavaAccess). Da brauche ich mehrere Starter. Außerdem bietest du in der Wirklichkeit auch für das Betriebsystem spezifische Downloads / Installationen an, die dir das richtige Script im Startmenü verlinken. Die Plattformunabhängigkeit von Java hört nämlich da auf, wo es um die saubere Einbindung des Programmes in den Desktop des Users geht (Links auf Desktop / Startleiste, Aufrufscripte usw.).

Externe jars z.B. lege ich in der Regel auch separat bei, schon allein um sie auch einzeln updaten zu können. Da kommen auch mal schnell 50 - 100 Jars zusammen. Da zieht das Argument einfach nicht. Außerdem: schau mal in deinen Programm Files Ordner. Welches Programm hat hier nur eine einzige Datei drin liegen?

Aber ich denke er wollte dir nur noch einen Anreiz geben. Wenn das das einzigste Problem war ... dann Glückwunsch ... hast ein super Programm für deinen Prof geschrieben.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Es ist nicht möglich, eine Batch-Anweisung auszuführen. Allgemeine Java-Themen 9
Tobero Batch Vorgang zum output Allgemeine Java-Themen 3
I Javaaufruf aus Batch inkl. Parameter (Adminrechte) Allgemeine Java-Themen 2
J Batch datei öffnen und als Admin ausführen Allgemeine Java-Themen 43
T .jar über cmd ausführen (später dann batch) Allgemeine Java-Themen 6
buggy84 Ausführen einer Batch mit Parameterübergabe funktioniert nicht richtig Allgemeine Java-Themen 18
J batch datei wird nicht aufgerufen Allgemeine Java-Themen 11
M Batch zum Java Cache löschen Allgemeine Java-Themen 3
iB0T "goto" Befehl aus Batch in Java und Variablen wert immer wieder neu setzen Allgemeine Java-Themen 4
T Java Programm als Batch Befehl Allgemeine Java-Themen 6
H java.library.path mit einer Batch-Datei einstellen Allgemeine Java-Themen 3
M Compilieren auf der COnsole bzw batch Allgemeine Java-Themen 3
P Batch "Java minicompiler" Allgemeine Java-Themen 3
T Batch-File / keine Verbindung zur DerbyDB Allgemeine Java-Themen 3
capgeti batch datei funktioniert nicht! Jar wird nicht gestartet! Allgemeine Java-Themen 3
G Mit Batch-Datei verzeichnisse löschen Allgemeine Java-Themen 9
D Batch-Datei Eingabe Allgemeine Java-Themen 2
M JAVA in BATCH Datei Allgemeine Java-Themen 9
H Batch in Java Allgemeine Java-Themen 8
M Batch ausführen mit Leerzeichen im Pfad Allgemeine Java-Themen 7
F CP Problem Batch Datei Allgemeine Java-Themen 6
Developer_X Batch Programmierung Allgemeine Java-Themen 4
Developer_X Mit einer Batch Datei eine Java Datei starten Allgemeine Java-Themen 4
G batch- Datei ausführen Allgemeine Java-Themen 19
M Wie Java-Programm über Batch-file starten? Allgemeine Java-Themen 8
M Javaprozess mit Batch-Script synchronisieren Allgemeine Java-Themen 2
G Java und Batch Command Allgemeine Java-Themen 1
S Rückmeldung von Konsole(Batch) an Java Allgemeine Java-Themen 2
G Batch ohne Console? Allgemeine Java-Themen 6
R Erkennung der Java-Installation im Batch-File Allgemeine Java-Themen 2
C Java Batch Warte Problem Allgemeine Java-Themen 4
D Thread & Process: Beenden einer Batch-Datei Allgemeine Java-Themen 8
P Batch Datei erstellen Allgemeine Java-Themen 2
T Kommunikation mit batch datei Allgemeine Java-Themen 3
G Batch-Datei - javac Ausgaben anzeigen Allgemeine Java-Themen 5
H java Programme als batch starten Allgemeine Java-Themen 13
M JavaDoc per Batch? Allgemeine Java-Themen 7
X Parameter bei Start über Batch-Datei übergeben(Tag und Zeit) Allgemeine Java-Themen 3
F Programmaufruf durch Batch-Datei Allgemeine Java-Themen 9
F Batch Datei Allgemeine Java-Themen 3
D MS-Eingabeaufforderung/Batch Datei Allgemeine Java-Themen 5
B Input/Output Probleme beim Ausführen von Shell-Befehlen mit Java Allgemeine Java-Themen 28
S Shell Commands mit absolutem Pfad ausführen Allgemeine Java-Themen 2
D Shell Script mit Parametern Allgemeine Java-Themen 2
B UNIX Shell befehl über JavaCode ausführen Allgemeine Java-Themen 19
M Aufruf von Unix-Shell in Java Allgemeine Java-Themen 5
Semox "Gute" Rückgaben von bash Shell ausgeben Allgemeine Java-Themen 4
S Shell-Befehl: mail Allgemeine Java-Themen 6
I Problem beim Ausführen von Shell Commandos Allgemeine Java-Themen 3
D Shell-Prozess lässt Thread nicht enden Allgemeine Java-Themen 4
D Java Anwendung in der Shell Allgemeine Java-Themen 5
T Shell befehle ausführen - wie? Allgemeine Java-Themen 2
K Shell Command Auslesen Allgemeine Java-Themen 3
S Überprüfen, ob ein Shell Befehl existiert! Allgemeine Java-Themen 4
G Windows Shell Umlaute Problem Allgemeine Java-Themen 19
D linux shell aus java öffnen Allgemeine Java-Themen 5
Ark Linux: Shell-Skript zum Kompileren und Starten Allgemeine Java-Themen 4
thE_29 Kontextmenü Shell Eintrag Allgemeine Java-Themen 35
C Shell in einer GUI erstellen Allgemeine Java-Themen 2
F Shell-Programme per Runtime.exec() starten und mehr? Allgemeine Java-Themen 4
M DOS-Shell kennt kein CP850!! Allgemeine Java-Themen 2
O Java via Korn-Shell Allgemeine Java-Themen 8
C shell befehl mit java ein- und auslesen Allgemeine Java-Themen 2
D Java Skript Wenn Dann in PDF Formular Allgemeine Java-Themen 2
T HTTP Skript für Passwortgeschützte Seite :: Häkchen setzen und Download Allgemeine Java-Themen 4
S Perl Skript über Java aufrufen Allgemeine Java-Themen 10
M Java Versionen über Skript aktivieren/deaktivieren? Allgemeine Java-Themen 2
G Python Skript über Dosbox starten Allgemeine Java-Themen 2
N Perl Skript ausführen über exec Allgemeine Java-Themen 2
G Terminal aufrufen und Skript ausführen Allgemeine Java-Themen 4

Ähnliche Java Themen


Oben