*.jar applikationen auf Linux installieren

Status
Nicht offen für weitere Antworten.

ThomasD

Neues Mitglied
Hallo liebes Forum,

ich bin momentan (noch) ein reiner Java Anwender. Habe zwei sehr schöne Programme (freemind, argouml) die ich auf meinem Linux System installiern will. Hab sie ausgepackt und bin in das jeweilige Verzeichnis mit dem *.jar file gegangen und hab mit 'java -jar PROGRAMM.jar' gestartet und alles war gut. Alternativ kann ich auch immer 'java -jar /pfad/zum/jar/file/PROGRAMM.jar' eintippen und es funktioniert auch.

So weit so gut...

Jetzt würde ich gern die *.jar files so installieren oder verlinken, dass ich das jeweilige Programm starten kann OHNE vorher in das Verzeichnis zu wechseln wo das *.jar liegt und OHNE den ganzen Pfad eintippen zu müssen. Ich möchte also, dass java das *.jar file selber findet. Ich hab es mit der CLASSPATH Umgebungsvariable versucht. Das hat nicht funktioniert.

Um es vorwegzunehmen. Ich kann Aliase und Desktop Verknüpfungen erstellen... Ich kann auch shell Skripte erstellen.... Aber das scheint mir eben nicht die eleganteste Lösung zu sein. Ich will die *.jar Programme so installieren, dass sie systemweit verfügbar sind (in /usr/local) und das ich sie von der Kommandozeile aus bequem mitsamt zu bearbeitendem File aufrufen kann. Also so ähnlich wie z.B. Skripte bei denen das System ja auch automatisch den passenden Interpreter auswählt.

Aufgrund eines entsprechende Hinweises in der java-manpage hab ich auch versucht das jar-file executable zu machen. Das hat auch nicht funktioniert. Das wäre ziemlich genau das gewesen was mir vorschwebt.

Hat da jemand eine gute Idee? Oder ist meine Vorstellung von 'elegant' nicht so elegant? Gibt es vielleicht einen guten Grund warum java nicht so einfach selber nach *.jar files sucht?

Besten Dank im Vorraus!

PS. Ich hab ein SuSE 10.3 mit java 1.5.0.
 
Hi,

du könntest ein shell-script in /usr/bin legen, daß die gewünschte jar-datei für dich entsprechend aufruft.


viele Grüße,
Käse
 
Hi ThomasD!

Unter SuSE gehst Du folgendermaßen vor:
  • rechte Mousetaste am Desktop klicken
  • Neu erstellen -> Verknüpfung zu Programm auswhählen
  • Die Programm bezeichnung eingeben
  • Auf den Programmreiter klicken
  • Unter Befehl: gibst Du jetzt den Befehl java -cp /Pfad zu Deiner Anwendung
  • Unter Arbeitsordner den Pfad wo das *.jar-File liegt
  • auf OK klicken
..fertig
Du kannst Dir dann noch ein Icon Deiner wahl aussuchen, damit am Desktop ned soviele Zahnräder stehen.

lg
DocRandom
 
@ Käsebrot

ja, das funktioniert. Ich hatte es erst mit einem im Paket freemind mitgelieferten shellskript versucht. Das hat auf meinem Desktop Rechner funktioniert, aber auf meinem Laptop nicht. Das scheint aber was sehr spezielles von FreeMind zu sein. Ich hab mir selber ein Skript erstellt das jetzt das Programm korrekt aufruft.

Aber die Lösung scheint mir nicht wirklich schön zu sein. Java ist schliesslich angetreten um Programme zu erstellen die auf jedem Rechner laufen. Da würde ich erwarten, dass sich die Entwickler auch was ausdenken das man Programme eben ohne zusätzliche Skripte und ohne ellenlange Kommandozeilen starten kann.

@ DocRandom

Das mit dem '-cp' scheint eine gute Idee zu sein. Genauso wie meine Idee mit der CLASSPATH Variable. Es funktioniert auch wenn ich als Befehl noch das *.jar mitsamt Pfad anhänge... Aber es ist eben gerade das, was ich nicht will. Ich will, das meine Shell und der Java Interpreter es allein finden. Ich will dem Java nur den Namen den Programms (von mir aus mit .jar Endung aber eben ohne den ganzen Pfad) sagen und mit einer Umgebungsvariable noch wo er suchen soll. Dann soll das funktionieren.

Vielleicht geht das ja nicht. Aber ich hab eben die Vermutung das es geht und es geht mir schlecht wenn ich einen Workaround bastele und im Hinterkopf immer denke: Vermutlich geht es noch eleganter....
 
Einem jar kann man keinen Classpath mitgeben, der Classpath bestimmt sich aus dem Manifest.
ArgoUML wird übrigens als Webstart deployed, das dürfte wohl die komfortablere Variante sein.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben