Programm von beliebigem Verzeichnis ausführen

Hallo zusammen.

Ich studiere im 1. Semester Informatik. Die Aufgabe war ein “Hello World”-Programm zu erstellen. Das ist soweit für mich kein Hindernis. Im Bezug auf Java findet sich in der Aufgabenstellung jedoch folgender Punkt:

G. Was müssen Sie tun, damit Sie das Programm in jedem beliebigen Verzeichnis ausführen können? Eruieren Sie 3 verschiedene Vorgabemöglichkeiten, die sich in der Dauer der Wirkung unterscheiden.

Die 1. Vorgabemöglichkeit die ich sehe ist während dem Ausführen über die Shell mithilfe der Option: -cp einen Pfad zur .class-Datei zu übergeben um somit die Datei aus beliebigem Verzeichnis auszuführen.

Für die 2. und 3. Vorgabemöglichkeit fehlt mir jedoch ein Ansatz. Hat hierzu noch irgendjemand von euch eine Idee?

Außerdem verwirrt es mich irgendwie, was mit “der Dauer der Wirkung” gemeint ist. Könnte im Bezug auf Java das vielleicht jemand ein wenig näher erläutern?

Liebe Grüße
andklein

Ist das Java spezifisch oder eher Linux spezifisch? Wenns auch um Linux geht, kann man das Programm verlinken.

Das sollte speziell für Java sein. Es sollen sozusagen 3 Möglichkeiten sein das Programm von einem beliebigen Verzeichnis auszuführen ohne dabei ein spezielles Betriebssystem zu nutzen.

Was mir noch so im Kopf rumschwirrt wäre das Ganze in ein JAR-Archiv zu packen? Aber ansonsten bin ich was das angeht mit meinem Latein irgendwie am Ende.

also mir würden spontan noch zwei andere möglichkeiten einfallen die sich in der dauer der wirkung (also dem zeitraum in dem diese gültigkeit haben) und noch eine die sich in ihrer “system-weite” unterscheidet …

aber spoilern wäre “ich löse deine aufgabe” , und das ist nicht sinn deines studiums

Da ich wirklich nicht weiterkomme wäre ich sehr glücklich gewesen, wenn du wenigstens ein paar Anhaltspunkte dagelassen hättest nach denen man googeln kann. Eine komplette Lösung will ich ohnehin von niemandem. :wink:

Aber eventuell ist damit auch einfach nur gemeint wie man mit einer Java-Datei umgehen muss um sie von überall ausführen zu können. Deswegen nehme ich jetzt mal an es war folgendes gemeint:

  1. Beim Aufruf von java über die Shell per -cp den Pfad zur .class-Datei angeben (Gültigkeit nur direkt beim Aufruf)
  2. Ein Bash-Shell-Script erstellen und damit das Programm ausführen (Gültigkeit so lange wie die Pfade in der Datei Gültigkeit haben)
  3. Eine JAR-Datei erstellen (Gültigkeit für so lange wie das JAR-Archiv existiert)

Eventuell hab ich damit ja den richtigen Ansatz verfolgt.

das geht schon so in die richtung die mir auch in den kopf gekommen ist

ich versuchs mal mit einem sehr allgemeinen hinweis : “was ist in jedem besseren java-anfäger buch über den CLASSPATH zu lesen ?”
vielleicht kommst du dadurch darauf was auf sehr vielen java-entwickler-pc’s vorhanden ist was ein otto-normal-sterblicher der lediglich java-anwendungen benutzt (normalerweise) nicht braucht

und dann noch in anlehnung an deinen 2ten punkt : dreh es mal um und mach das was im script steht manuell > welche zeile des scripts kannst du nach erstmaliger ausführeung weglassen so lange die shell-session weiterläuft ?

und zu dem anderen punkt werfe ich einfach mal ganz schlicht den punkt “rechte-management” in den raum … davon sollte sich alles ableiten lassen können

Danke für die Hinweise. Damit sollte ich es soweit hinkriegen können. Zumindest macht das ganze jetzt ein wenig mehr Sinn. :smiley: