Kay: Aktuelles Verzeichnis

Hallo,

wie ermittle ich das aktuelle Verzeichnis, also den Ordner, in dem meine .class-Datei mit dem main-Methode leigt?

Vielen Dank, Kay

  1. hallo Ka,

    wie ermittle ich das aktuelle Verzeichnis, also den Ordner, in dem meine .class-Datei mit dem main-Methode leigt?

    Setze dich einfach vor den Rechner, auf dem deine .class-Datei gespeichert wurde, melde dich als Administrator an und schau mal nach, ob du sie findest ...

    Na gut, das ist wohl nicht gemeint. Aber irgendwie hast du ja _deine_ .class-Datei mal hochgeladen  -  sonst wärs nicht deine. Du könntest also den Pfad noch wissen. Die Frage ist eher: wozu brauchst du eine solche Information eventuell in einem JAVA-Applet? Was willst du konkret tun?

    Grüße aus Berlin

    Christoph S.

    1. Hi,

      1. in einem Applet kann ich ja wohl kaum auf die Dateistruktur zugreifen oder?
      2. Wenn ich eine .class-Datei an einen Bekannten weitergebe, kenne ich selbstverständlich den Ordner, wo er sie hinplatziert nicht oder?
      3. Ich möchte in gleichen Verzeichnis, in dem die .class-Datei (mein Programm) läuft, eine Textdatei mit bestimmten Infos abspeichern. Also brauche ich den aktuellen Ordner, in dem die .class-Datei läuft.

      Grüße, Kay

      1. hallo Kay,

        1. in einem Applet kann ich ja wohl kaum auf die Dateistruktur zugreifen oder?

        Kommt drauf an, was du unter "zugreifen" verstehst. Abbilden kannst du die aktuelle Ornderstruktur sehr wohl.

        1. Wenn ich eine .class-Datei an einen Bekannten weitergebe, kenne ich selbstverständlich den Ordner, wo er sie hinplatziert nicht oder?

        Das hängt von der Kommunikation mit deinem Bekannten ab.

        1. Ich möchte in gleichen Verzeichnis, in dem die .class-Datei (mein Programm) läuft, eine Textdatei mit bestimmten Infos abspeichern. Also brauche ich den aktuellen Ordner, in dem die .class-Datei läuft.

        Siehst du, das ist _genau das_, was ich gesagt habe: lade die Textdatei ganz schlicht und einfach gemeinsam mit der .class-Datei ins selbe Verzeichnis hoch. Wenn beide, also das Applet und die Textdatei, aus der es doch wahrscheinlich irgendwas auslesen/übernehmen soll, im selben Verzeichnis liegen, sind weitergehende Überlegungen zum Pfad nicht zwingend nötig. Du mußt nicht überall absolute Pfade setzen.

        Es kommt wirklich darauf an, was du mit der Information über einen Pfad anstellen möchtest, also ob das Applet damit irgendwie weiterarbeiten soll. Solange deine "Textdatei" und das Applet im selben Verzeichnis liegen, sind irgendwelche URL-Abfragen eigentlich nicht zwingend nötig. Was nicht heißt, daß sie nicht möglich wären.

        Grüße aus Berlin

        Christoph S.

        1. Hallo Christoph,

          ich glaube, du hast immernoch verstanden - ich habe kein Applet, sondern eine Applikation geschrieben.
          Ich habe das Auslesen des aktuellen Ordners hinbekommen - ohne deine Hilfe. Denn Andere Posten irgendwie hilfreicher und ich habe eigentlich keine Lust, mit dir über Spitzfindigkeiten - wie Formulierungen - zu diskutieren.

          Viele Grüße, Kay

      2. Hi,

        1. in einem Applet kann ich ja wohl kaum auf die Dateistruktur zugreifen oder?

        Sicher doch. Das Applet muß dazu nur berechtigt sein - das kann z.B. über eine Signatur, die vom User bestätigt werden muß, geschehen.

        cu,
        Andreas

        --
        MudGuard? Siehe http://www.mud-guard.de/
    2. Hallo!

      wie ermittle ich das aktuelle Verzeichnis, also den Ordner, in dem meine .class-Datei mit dem main-Methode leigt?

      Deine Class-Datei muss ja nicht unbedingt aus einem Verzeichnis auf Deinem Rechner kommen. Du kannst aber die URL von Resourcen herausfinden, die über den ClassLoader Deiner Klasse geladen werden können.
      Mit meineKlasse.class.getResource("bla.txt") kommst Du z.B. an die URL, einer Datei im selben Verzeichniss. An die URL der Class-Datei kommst Du also mit meineKlasse.class.getResource("meineKlasse.class")
      Java verlangt aber glaube ich nicht, dass die Klassendaten wirklich so erreichbar sind. Wenn die Klassen z.B. aus einer Datenbank kommen, könnte das evt. nicht funktionieren. (Vermutlich interessieren Dich solche Spezialfälle aber nicht ;-)

      Weitere Dokumentation:
      [Link:http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Class.html#getResource(java.lang.String)]

      Setze dich einfach vor den Rechner, auf dem deine .class-Datei gespeichert wurde, melde dich als Administrator an und schau mal nach, ob du sie findest ...

      Wenn Du nichts weißt, kann man das auch deutlich kürzer formulieren.

      Grüße

      Daniel

      1. guten Abend Daniel,

        wie ermittle ich das aktuelle Verzeichnis, also den Ordner, in dem meine .class-Datei mit dem main-Methode leigt?
        Deine Class-Datei muss ja nicht unbedingt aus einem Verzeichnis auf Deinem Rechner kommen

        Das ist eine Antwort, die nicht an der korrekten Stelle im Thread steht. Du gibst damit Kay einen Hinweis, den er vielleicht befolgen kann, aber nicht mir.

        Mit meineKlasse.class.getResource("bla.txt") kommst Du z.B. an die URL

        Bist du dir da sicher?

        An die URL der Class-Datei kommst Du also mit meineKlasse.class.getResource("meineKlasse.class")

        getRessource ist tatsächlich ein Weg.

        (Vermutlich interessieren Dich solche Spezialfälle aber nicht ;-)

        Doch, gerade "Spwzialfälle" können mich durchaus interessieren.

        Weitere Dokumentation:http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Class.html#getResource(java.lang.String)

        Wenn Du nichts weißt, kann man das auch deutlich kürzer formulieren.

        Ich bin noch nicht überzeugt, daß ich nichts weiß.

        Grüße aus Berlin

        Christoph S.

        1. Hallo Christoph,

          Das ist eine Antwort, die nicht an der korrekten Stelle im Thread steht. Du gibst damit Kay einen Hinweis, den er vielleicht befolgen kann, aber nicht mir.

          Jein, für Dich war auch ein Hinweis dabei und ich wollte nicht 2 mal posten.

          Bist du dir da sicher?

          Ja.

          Ich bin noch nicht überzeugt, daß ich nichts weiß.

          Ich habe Dich auch nicht versucht, davon zu überzeugen, aber Du erweckst den Eindruck entweder nichts zu wissen oder nicht sagen zu wollen, was Du weißt.
          Beides erscheint mir wenig hilfreich zu sein.

          Außerdem geht es nicht um ein Applett, sondern um eine Java-Anwendung.
          Das hat er zwar nicht gesagt, aber wenn man sich mit Java Auskennt, muss einem das eigentlich auffallen, wenn er von "seiner .class Datei mit der Main Methode" redet.

          Grüße

          Daniel

          1. hallo Daniel,

            Ich bin noch nicht überzeugt, daß ich nichts weiß.
            Ich habe Dich auch nicht versucht, davon zu überzeugen, aber Du erweckst den Eindruck entweder nichts zu wissen oder nicht sagen zu wollen, was Du weißt.
            Beides erscheint mir wenig hilfreich zu sein.

            Prinzipiell richtig. Es kommt ein bißchen auf die Fragestellung an. Kay hat seine Frage so formuliert, daß es trotz  -  oder vielleicht gerade wegen  -  der Kürze der Formulierung erhebliche Möglichkeiten der Interpretation gibt.

            Außerdem geht es nicht um ein Applett, sondern um eine Java-Anwendung.

            Eben _das_ wird aus der Fragestellung nicht klar, wenn man sich überlegt, wo Applikationen und wo Applets meist zur Anwendung kommen. Sehr grob verallgemeinert kann man wohl sagen, daß Applets für den Einsatz auf Webseiten gebaut werden, und Applikationen für den Einsatz auf einem lokalen Rechner  -  es kann da durchaus Überschneidungen geben, aber das ist hier (noch) nicht das Thema.

            Das hat er zwar nicht gesagt

            Nicht gleich. Aber in [pref:t=69471&m=399605] gibts die leicht gereizte Nachfrage:

            1. in einem Applet kann ich ja wohl kaum auf die Dateistruktur zugreifen oder?

            Du schreibst weiter:

            aber wenn man sich mit Java Auskennt, muss einem das eigentlich auffallen, wenn er von "seiner .class Datei mit der Main Methode" redet.

            So weit ich weiß, gibt es keine Applikation, die ohne "main"-Methode auskommen könnte. Applets dagegen benötigen sie nicht zwingend, aber sie ist meines Wissens auch nicht "deprecated" für den Einsatz in Applets (ich gebe zu, daß ich eben etwas herumgesucht habe, ob ich in der JAVA-Doku einen Hinweis finde, auf die Schnelle hab ich aber keinen gefunden). Richtig ist, daß ich bisher kein Applet kennengelernt habe, in dem es eine "main"-Methode gibt.

            "*.class" kann sowohl der Name einer Applikation wie auch der Name eines Applets sein.

            Letzten Endes ist ausschlaggebend, was man von woher aus tun möchte. Daher hatte ich, eigentlich ganz folgerichtig, nachgefragt:

            Was willst du konkret tun?

            Wenn Kay das beantwortet und zeigt, wozu er eine Pfadinformation braucht und woher sie aufgerufen werden soll, kann man weiterschauen.

            Grüße aus Berlin

            Christoph S.

            1. Hi,

              aber wenn man sich mit Java Auskennt, muss einem das eigentlich auffallen, wenn er von "seiner .class Datei mit der Main Methode" redet.
              So weit ich weiß, gibt es keine Applikation, die ohne "main"-Methode auskommen könnte. Applets dagegen benötigen sie nicht zwingend, aber sie ist meines Wissens auch nicht "deprecated" für den Einsatz in Applets (ich gebe zu, daß ich eben etwas herumgesucht habe, ob ich in der JAVA-Doku einen Hinweis finde, auf die Schnelle hab ich aber keinen gefunden). Richtig ist, daß ich bisher kein Applet kennengelernt habe, in dem es eine "main"-Methode gibt.

              Da kenn ich einige.
              Das hat den Vorteil (wenn man es richtig macht), daß man das ganze sowohl als Applet als auch als Application starten kann...

              cu,
              Andreas

              --
              MudGuard? Siehe http://www.mud-guard.de/
              1. wow, Andreas,

                Richtig ist, daß ich bisher kein Applet kennengelernt habe, in dem es eine "main"-Methode gibt.
                Da kenn ich einige.
                Das hat den Vorteil (wenn man es richtig macht), daß man das ganze sowohl als Applet als auch als Application starten kann...

                Ich habe das vermutet und den Einwand von Daniel deswegen nicht gelten lassen wollen. Erstaunlich, daß wir mal ähnliche Ansichten haben *g*

                Grüße aus Berlin

                Christoph S.

                1. Hi,

                  Erstaunlich, daß wir mal ähnliche Ansichten haben *g*

                  Arrgh! Kann ich mein Posting zurückziehen? ;-)

                  cu,
                  Andreas

                  --
                  MudGuard? Siehe http://www.mud-guard.de/
                  1. morgens,

                    Erstaunlich, daß wir mal ähnliche Ansichten haben *g*
                    Arrgh! Kann ich mein Posting zurückziehen? ;-)

                    Nö, seitdem es [pref:t=69471&m=399680] gibt, darfst du nicht mehr.

                    Grüße aus Berlin

                    Christoph S.

  2. Hallo,

    wie ermittle ich das aktuelle Verzeichnis, also den Ordner, in dem

    meine .class-Datei mit dem main-Methode leigt?

    Willst du das aktuelle Verzeichnis oder das Verzeichnis, aus dem die
    .class-Datei gelesen wird?

    Guck dir mal folgende Links an:
    http://java.sun.com/j2se/1.4.2/docs/api/java/lang/System.html#getProperties()  (user.dir)
    http://javaalmanac.com/egs/java.lang/ClassOrigin.html

    Gruß
    Slyh