absoluter Pfad ins working Directory

Status
Nicht offen für weitere Antworten.
H

Hayys

Gast
Hallo, ich habe folgendes Problem:

L:\test\test.jar

ruft man jetzt
L:\> java -jar /test/test.jar
auf

liefert
java.class.path = /test/test.jar
user.dir = L:\

d.h. mir fehlt der absolute pfad, einfach zusammen kopieren geht auch nicht, da Doppelklick auf die .jar Datei
java.class.path=L:\test\test.jar
user.dir=L:\test

liefert

ich bräuchte sowas wie getCodeBase() wie für Applets, wo das ergebnis immer eindeutig ist

ich hoffe jemand versteht mein Problem :)

Hayys
 

Wildcard

Top Contributor
Es gibt dafür keinen wirklichen Weg (zumindest keinen sinnvollen) und es gibt auch kaum Gründe warum man das brauchen sollte.
Somit stellt sich die, wofür brauchst du das? Vielleicht gibt es eine Alternative.
 
G

Gast2

Gast
Moin,

Code:
ich bräuchte sowas wie getCodeBase() wie für Applets, wo das ergebnis immer eindeutig ist
wenn Du das JAR von L:\ aufrufst und nicht von L:\test ... wirst Du auch nur L:\ geliefert bekommen ... Dein "WorkingDirectory" ist einfach nur falsch

hand, mogel
 
H

Hayys

Gast
es ist ganz einfach:

absolute_path = new File(System.getProperty("java.class.path")).getAbsolutePath();
 
G

Gast

Gast
lol, genau, ganz einfach.. wir sehen uns wieder hier, wenn classpath aus mehreren teilen besteht
 

thE_29

Top Contributor
Hab da mal was gebastelt!

Code:
  /***************************************************************************************************************************************
   * Methode gibt den Pfad zurück
   * @return String
   **************************************************************************************************************************************/
  public String getPath()
  {
    String path1 = System.getProperty("user.dir");
    String path2 = System.getProperty("java.class.path");
    try{
      if(path2 != null && path2.trim().length() > 0  && path2.indexOf(File.pathSeparator) == -1 && path2.indexOf(File.separator) != -1)
      {
        path2 = path2.substring(0, path2.lastIndexOf(File.separator));
        if(!path1.endsWith(File.separator))
          path1 = path1.concat(File.separator);
        File f1 = new File(path1);
        File f2 = new File(path2);
        //wenn sie gleich sind
        if (f1.getCanonicalPath().equals(f2.getCanonicalPath()))
        {
          if(!path1.endsWith(File.separator))
            path1 = path1.concat(File.separator);
          System.out.println("NUTZE PFADIF:: " + path1);
          return path1;
        }
        else{
          if(!path1.endsWith(File.separator))
            path1 = path1.concat(File.separator);
          path1 = path1.concat(path2);
          if(new File(path1).exists())
          {
            System.out.println("NUTZE PFADELSE:: " + path1);
            return path1;
          }
          else
          {
            System.out.println("NUTZE PFAD2ELSEERR:: " + path2);
            return path2;
          }
        }
      }
      else {
        if(!path1.endsWith(File.separator))
          path1 = path1.concat(File.separator);
        System.out.println("NUTZE PFADDEF:: " + path1);
        return path1;
      }
    }
    catch(Exception ex)
    {
      ex.printStackTrace();
    }
    return System.getProperty("user.home");
  }

Was noch fehlt ist der Einbau wenn mehere Dinger im ClassPath sind! Dadurch das bei mir immer nur meine Jar Datei aufgerufen wird habe ich mir das erspart :)
 

Wildcard

Top Contributor
thE_29 hat gesagt.:
Was noch fehlt ist der Einbau wenn mehere Dinger im ClassPath sind! Dadurch das bei mir immer nur meine Jar Datei aufgerufen wird habe ich mir das erspart :)
Einfacher ist es, eine Klasse/Resource aus dem jar über den Classloader zu laden und die URL zu parsen, aber auch das ist keine schöne Lösung. Die Frage bleibt bestehen, warum sollte man den Pfad zum jar benötigen?
 

thE_29

Top Contributor
Ich hab das schon paar mal gebraucht, weil ich ihm Pfad der Jar Datei Dinge gespeichert und geladen habe.

Wenn der Benutzer das aber "blöd" startet, kriegt man halt den Startpfad zurück und nicht den Pfad wo die Jar Datei liegt.
 

Wildcard

Top Contributor
thE_29 hat gesagt.:
Ich hab das schon paar mal gebraucht, weil ich ihm Pfad der Jar Datei Dinge gespeichert und geladen habe.
Ich kann mir das schon vorstellen, nur ist das ein sehr unübliches Verhalten, weil ich davon ausgehen würde, dass Programme in einem Verzeichnis liegen, in dem der User kein Schreibrecht hat.
Deutlich wird's auf der Kommandozeile:
Wenn ich ein Programm das in meinem Pfad liegt ausführe um sagen wir den MD5 einer Datei zu berrechnen und in eine Datei zu schreiben.
Wo erwarte ich das die Datei rauskommt? Im Verzeichnis in dem das Programm liegt, oder doch eher im Arbeitsverzeichnis von dem ich das Programm ja gestartet habe?
 
H

Hayys

Gast
wildcard: stell dir einfach mal vor neben der .jar datei, leigt noch textfile, welches das Programm braucht, jetzt den pfad zu finden, wenn beliebig von der Konsole abgerufen wurde ist garnicht so einfach

schon mal was vom DAU gehört?

ich programmiere auch für DAUs :)
 

thE_29

Top Contributor
Wildcard hat gesagt.:
thE_29 hat gesagt.:
Ich hab das schon paar mal gebraucht, weil ich ihm Pfad der Jar Datei Dinge gespeichert und geladen habe.
Ich kann mir das schon vorstellen, nur ist das ein sehr unübliches Verhalten, weil ich davon ausgehen würde, dass Programme in einem Verzeichnis liegen, in dem der User kein Schreibrecht hat.
Deutlich wird's auf der Kommandozeile:
Wenn ich ein Programm das in meinem Pfad liegt ausführe um sagen wir den MD5 einer Datei zu berrechnen und in eine Datei zu schreiben.
Wo erwarte ich das die Datei rauskommt? Im Verzeichnis in dem das Programm liegt, oder doch eher im Arbeitsverzeichnis von dem ich das Programm ja gestartet habe?

Warum sollte der Benutzer kein Schreibrecht auf das haben?!

Nehmen wir zB JBuilder! Der hat ein Config File im root Verzeichnis und der findet das auch immer, egal von wo ich den starte.
Genauso will ich das bei meinem Programm! Egal vonwo es gestartet wird, die config Datei liegt im Verzeichnis wo das Programm liegt.

Wenn ich einen MD5 Calc mache, ist es klar, dass das Ergebnis eben im aktuellen Verzeichnis rauskommt.
 

Wildcard

Top Contributor
thE_29 hat gesagt.:
Warum sollte der Benutzer kein Schreibrecht auf das haben?!
Weil ein Benutzer in aller Regel nur in sein home Schreiben kann, Programme aber üblicherweise an anderer Stelle liegen.

Nehmen wir zB JBuilder! Der hat ein Config File im root Verzeichnis und der findet das auch immer, egal von wo ich den starte.
Ganz genau. Ein globales Config File das der Anwender händisch bearbeiten soll. Das ist der einzige Anwendungsfall der auch mir einfällt.
Alles was ich vom OP wollte, ist, das er seinen usecase beschreibt, damit sich beurteilen lässt, ob er/sie überhaupt in die richtige Richtung denkt.
 

thE_29

Top Contributor
Achso ;)
Naja, bei mir war das eben der Fall!
Sonst würde ich es ja auch nicht brauchen..
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Absoluter Pfad. Allgemeine Java-Themen 6
G absoluter pfad aus relativem Allgemeine Java-Themen 5
kodela String kann nicht zu Pfad konvertiert werden Allgemeine Java-Themen 16
izoards Java Home Pfad unabhängig von der Version Allgemeine Java-Themen 7
L Java überprüfen lassen, ob sich ein gegebener Pfad / das Programm an sich auf einer CD oder Festplatte befindet Allgemeine Java-Themen 14
G Datei aus Ordner wählen, ohne den Dateinamen im Pfad angeben zu müssen Allgemeine Java-Themen 4
N relativier Pfad für sqlite-Datenbank in Gradle/IntelliJ Allgemeine Java-Themen 2
O Leerzeichen und Umlaute im Pfad einer Java Applikation machen Probleme Allgemeine Java-Themen 13
S Pfad zu Ressourcen Allgemeine Java-Themen 17
T Probleme mit dem Pfad zum Propertie file Allgemeine Java-Themen 7
C FileOutputStream konkreter Pfad Allgemeine Java-Themen 3
J Datei löschen, die Leerzeichen im Pfad hat Allgemeine Java-Themen 5
L Classpath Relativer Pfad einer Resource? Allgemeine Java-Themen 9
sandaime CMD aufrufen und aktuellen pfad ändern Allgemeine Java-Themen 11
J .exe Dateien werden nicht gestartet obwohl Pfad richtig Allgemeine Java-Themen 6
C pfad vom Image ausgeben lassen Allgemeine Java-Themen 5
O log4j pfad per umgebungsvariable setzen Allgemeine Java-Themen 5
K Classpath Falscher Pfad? o.O Allgemeine Java-Themen 2
S Shell Commands mit absolutem Pfad ausführen Allgemeine Java-Themen 2
F LWJGL in keinem Java libary Pfad? Allgemeine Java-Themen 2
M FileInputStream relativer Pfad in .jar Allgemeine Java-Themen 2
D pfad zur jre linux Allgemeine Java-Themen 8
C Kompletter Pfad aus "input type=file" auslesen Allgemeine Java-Themen 3
M Input/Output Pfad mit Leerzeichen convertieren in Kurzschreibweise (~1, ~2, etc)? Allgemeine Java-Themen 10
C JAR, Pfad und Properties Allgemeine Java-Themen 17
P Pfad zu Dateien von "Tragbaren Gerät" Allgemeine Java-Themen 3
F Pfad der laufenden JAR ermitteln (mit Archivnamen) Allgemeine Java-Themen 2
U DLLs werden nicht gefunden trotz Pfad: Allgemeine Java-Themen 4
G log4j File erzeugen und Pfad bestimmen Allgemeine Java-Themen 3
A File Java Pfad Allgemeine Java-Themen 5
D JavaEE-WebApp Pfad auslesen Allgemeine Java-Themen 3
M Pfad in int[][] finden Allgemeine Java-Themen 4
J Java Pfad nicht mehr in Path Variablen??? Allgemeine Java-Themen 2
C Environment Variable in Pfad -> Datei öffnen Allgemeine Java-Themen 5
M Relativer Pfad oder Dateien in Jar Allgemeine Java-Themen 7
D Pfad aus Ressource-Datei auslesen Allgemeine Java-Themen 7
S FileInputStream aplication Pfad Allgemeine Java-Themen 4
H Datei speichern -> Pfad erstellen? Allgemeine Java-Themen 1
T Pfad Anwendungsdaten unter Windows ermitteln Allgemeine Java-Themen 3
H2SO3- jar soll eigenen namen(pfad) finden Allgemeine Java-Themen 12
W HTML-Pfad Allgemeine Java-Themen 4
M Batch ausführen mit Leerzeichen im Pfad Allgemeine Java-Themen 7
C Applet: JFileChooser: PFad an HTML zürückgeben Allgemeine Java-Themen 4
MQue ClassLoader Pfad ausgeben Allgemeine Java-Themen 6
T Pfad aus Dateilesen -> wie diesen Pfad verwenden! Allgemeine Java-Themen 13
A Jar-File - Pfad Allgemeine Java-Themen 3
-horn- Kürzester Pfad: Code so eine gute Idee? Allgemeine Java-Themen 7
GambaJo Pfad zum Userprofil abhängig vom OS (/home Dok&Einst. us Allgemeine Java-Themen 3
R Wo ist der Pfad zur "Java(TM) Platform SE" Allgemeine Java-Themen 7
R Pfad zu PDF bei iText in Webapps Allgemeine Java-Themen 4
P Pfad der gerade ausgeführten Jar-Datei auslesen Allgemeine Java-Themen 2
R Entfernen der '..' Notation aus dem Pfad Allgemeine Java-Themen 2
T Java Applet PDF erstellen mit iText, Probleme mit Pfad Allgemeine Java-Themen 1
MasterEvil File.createTempFile liefert nur kurzen Pfad mit Tilde Allgemeine Java-Themen 3
T Wie bekomme ich den Pfad ohne Dateiname? Allgemeine Java-Themen 2
MQue Pfad splitten Allgemeine Java-Themen 2
P Pfad schließen xml Allgemeine Java-Themen 3
H Pfad einer Sounddatei von Soundkarte auslesen Allgemeine Java-Themen 15
G Problem Pfad zu wechseln Allgemeine Java-Themen 28
J Erkennen aus welchem Pfad das Jar gestartet wurde Allgemeine Java-Themen 6
S relativer Pfad? Allgemeine Java-Themen 18
S Relativen Pfad zu Pfad für File finden Allgemeine Java-Themen 4
G Problem mit Leerzeichen im Pfad bei File und getResouce Allgemeine Java-Themen 2
S Relativer Pfad in jsp Allgemeine Java-Themen 6
D Pfad ausfindig machen? Allgemeine Java-Themen 2
E Pfad angeben Allgemeine Java-Themen 5
M Den Pfad ermitteln aus dem die .jar Datei gestartet wurde Allgemeine Java-Themen 2
G ganze Pfad in einer Ordnerstruktur abbilden Allgemeine Java-Themen 19
G FileOpenDialog Pfad anlegen? Allgemeine Java-Themen 2
E in Pfad suchen Allgemeine Java-Themen 5
Q || Wie speichert man Dateien wo der Pfad als Link(UNIX)... Allgemeine Java-Themen 11
S Pfad Verwaltung Allgemeine Java-Themen 3
M Pfad zur Klasse ermitteln Allgemeine Java-Themen 2
L Pfad von Daten auf Server über FileChooseDialog Allgemeine Java-Themen 5
G Root-Pfad in einer Webapplikation finden Allgemeine Java-Themen 7
D Windows Pfad in UNC Pfad wandeln Allgemeine Java-Themen 4
G jar archiv und native klassen (pfad angabe) Allgemeine Java-Themen 2
P Leerzeichen im Pfad Allgemeine Java-Themen 8
I Pfad in einem String ändern Allgemeine Java-Themen 5
D Pfad zu meiner anwendung? Allgemeine Java-Themen 13
B relativer Pfad Allgemeine Java-Themen 18
J Pfad problem Allgemeine Java-Themen 14
D Jar-Datei-Pfad Allgemeine Java-Themen 2
welterde Pfad zur Jar-Datei Allgemeine Java-Themen 7
S Runtime exec unter MacOS X will nicht "open pfad" Allgemeine Java-Themen 7
M TreePath aus einem Pfad? Allgemeine Java-Themen 4
K Falscher Pfad beim Laden eines Bildes Allgemeine Java-Themen 9
G Servlets: Ganzer Pfad und Dateiname des verschickten Forms Allgemeine Java-Themen 15
G Wie komme ich an den Pfad zu meinem Programm? Allgemeine Java-Themen 2
thE_29 DOS pfad bekommen - die Tilde Allgemeine Java-Themen 1
A Pfad mit Leerzeichen über exec starten Allgemeine Java-Themen 6
G Relativer Pfad zu Pfad Allgemeine Java-Themen 2
H Pfad für [Ini/DB]-Datei Allgemeine Java-Themen 4
D Javapackager working directory on Mac Allgemeine Java-Themen 7
S "Working Directory" setzen..? Allgemeine Java-Themen 3
S working path ermitteln Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben