Aktuelles Verzeichnis in den Klassenpfad nehmen

reibi

Top Contributor
Hi

Weiss jemdand wie ich bei folgendem Aufruf das aktuelle Verzeichnis mit in den Klassenpfad bekomme?

Java:
C:\MYPRG>java -cp test.jar com.App

Danke und Gruss
 

reibi

Top Contributor
Hi

Klar daran hab ich auch schon gedacht, aber das funzt net:

Achso ... test läuft unter Windows, deshalb ";" als Separator

Java:
C:\MYPRG>java -cp .;test.jar com.App


Gruss
 

Jedit

Aktives Mitglied
der Separator ; bei deinem Befehlt sagt dem PC so viel wie:

Schau erst im aktuellen verzeichnis nach ob du die Datei findest und wenn sie da nicht ist, dann schau in test.jar

Wo soll er denn hingehn? Ordner trennt man jedenfalls mit / und pakete mit nem .
 
Zuletzt bearbeitet:

reibi

Top Contributor
Der Klassenpfad wird durch alle Jars(separiert durch den Separator) zu anfangs gesetzt... es gibt kein zuerts und danach. Und es gibt auch keine Suche. Es gibt lediglich direkten zugriff. Entweder der klappt oder es gibt "Exception"

Zur Frage:

Ich benutze eine Klasse namens "com.Klasse1" die im unterVERZEICHNIS "com" rumliegt und "com.Klasse2" die sich inclusive PACKAGE im Jar befindet.

Klasse2 funktioniert, Klasse1 nicht!

Danke und Gruss ;-)
 

mvitz

Top Contributor
Also folgender Aufbau?

Code:
Root
 |- com
 |    `- Klasse1.class
 `- test.jar
      `- com
            |- App.class
            `- Klasse2.class

Und folgender Aufruf im Verzeichnis Root
Code:
java -cp .;test.jar com.App

Funktioniert bei mir.

Klassen:
Java:
package com;

public class Klasse1 {

  public static void test() {
    System.out.println("Klasse1");
  }
}
Java:
package com;

public class Klasse2 {

  public static void test() {
    System.out.println("Klasse2");
  }
}
Java:
package com;

public class App {

  public static void main(String[] args) {
    Klasse1.test();
    Klasse2.test();
  }
}
 

reibi

Top Contributor
Hi mvitz ;-)

Das ist einZwischenFragenBeantwortungsThread ;-) für die Frage Die ich Dir noch beantworten muss ;-)

Aber zurück zu dieser:

Ja so wie DUs beschrieben hast ist es richtig: Und so wies bei Dir funktioniert, gehts bei mir iregndwie nicht.
Fairerweise muss man sagen dass Klasse1 ein Configfile ist welches ich durch theClassloader.getResourceAsStream rausholen will.

Gruss an Euch beide ;-) und danke für die Hilfe
 

mvitz

Top Contributor
Sag so etwas doch sofort...

Folgendes funktioniert:
Code:
Root
 |- com
 |    `- test.config
 `- test.jar
      `- com
            `- App.class

Aufruf:
Code:
java -cp .;test.jar com.App

Files:
test.config
Code:
name: bar

App.java
Java:
package com;

import java.io.InputStream;
import java.io.IOException;
import java.util.Properties;

public class App {

  public static void main(String[] args) throws IOException {
    InputStream in = App.class.getClassLoader().getResourceAsStream("com/test.config");
    System.out.println(in);
    Properties props = new Properties();
    props.load(in);
    System.out.println(props.getProperty("name"));
  }
}
 

Jedit

Aktives Mitglied
@ reibi

Dann meinen wir etwas unterschiedliches. Wenn man nämlich in der CommandShell -cp den classpath temporär ändert, kann man definitiv mehrere Pfade mit ; getrennt angeben. Es wird dann von links nach rechts jeder angegebene Pfad nach dem angegbenen File durchsucht und sobald es gefunden wird, ausgeführt.

zB:
java -cp D:\myprogram;D:\;D:\javafiles;D:\myprogram\lib etc
 

reibi

Top Contributor
@mvitz

Na krass: weiss auch nicht warum es nich ging ... jetzt gehts ... hab auch nix verändert gehabt. Vielleihct hat das Masven was vergessen gehabt. Das macht es manch mal ;} So mach ichs auf jeden Fall auch ;-)

Das einzige ist noch das ich nen anderen Classloader benutze; und zwar so:
Java:
InputStream myIS = ClassLoader.getSystemResourceAsStream("conf/my.conf");

das bringt mir den Vorteil, dass ich keine Instanz meiner klasse machen muss sondern einfach ne statische Methode von "Classloader" aufrufen muss.


@Jedit
Trotzdem danke für Deine Hilfe, auch wenn wir was unterschiedliches meinten.
Das Beispiel was Du sagst funktioniert, klar! ABer gesucht wird darin nicht. Ganz zu Begin stellt die VM eine Liste aus allen Pfaden zu Verzeichnissen, jars und zipfiles auf. Wenn man dann eine Klasse benutzen will, wird die im Hintergrund nicht erst gesucht. SIe ist schon da und man greift auf sie zu. Falls sie nicht da ist, gibts ne Exception, es wird nicht gesucht! Stell Dir mal vor, Du würdest 1 million Klassen in den klassenfpad packen und er müsste erst nach einer bestimmten suchen(vergleichen), wie lange das dauern würde.

Grüss und schönes WE an Euch ;-)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Drucken ändert aktuelles Verzeichnis Allgemeine Java-Themen 2
S Aktuelles Verzeichnis - CMD/Kommandozeilenproblem Allgemeine Java-Themen 9
W Aktuelles Verzeichnis rausfinden Allgemeine Java-Themen 13
G aktuelles Verzeichnis Allgemeine Java-Themen 2
S Programm starten mit Runtime aktuelles Verzeichnis wechseln Allgemeine Java-Themen 7
T Aktuelles Datum auslesen Allgemeine Java-Themen 2
G Listener auf aktuelles Datum / Uhrzeit Allgemeine Java-Themen 2
Q Aktuelles Verzeichniss herausfinden. Allgemeine Java-Themen 2
C Aktuelles Datum auslesen Allgemeine Java-Themen 2
H Aktuelles Datum Allgemeine Java-Themen 7
S Verzeichnis schreibzugriffe erlaubt unabhängig von ACL und Posix Allgemeine Java-Themen 11
T Geeignetes Verzeichnis Allgemeine Java-Themen 5
P Wofür ist das Verzeichnis $HOME/.oracle_jre_usage? Allgemeine Java-Themen 3
M Dateien aus einem Verzeichnis auf einem Server auflisten Allgemeine Java-Themen 5
K NetBeans Ordner bei 'Clean&Build' automatisch in dist Verzeichnis kopieren Allgemeine Java-Themen 0
C Verzeichnis ins JMenu einlesen Allgemeine Java-Themen 2
A Class Datei aus Verzeichnis über URLClassLoader laden Allgemeine Java-Themen 2
C Umgebungsvariable Java-Datei in anderem Verzeichnis ausführen Allgemeine Java-Themen 2
K [Refactoring] ClassLoader Verzeichnis durchsuchen lassen Allgemeine Java-Themen 7
R Welches User-Verzeichnis wählen für Configurationsdateien - Windows Allgemeine Java-Themen 2
R Änderungen in einem Verzeichnis beobachten - Windows Allgemeine Java-Themen 3
S Aus executable jar Verzeichnis erstellen Allgemeine Java-Themen 8
reibi Leeres Verzeichnis in ein Zipfile einfügen Allgemeine Java-Themen 12
reibi Schreibrechte auf ein Verzeichnis Allgemeine Java-Themen 3
G Log4J Verzeichnis der Log-Datei konfigurieren Allgemeine Java-Themen 8
T Eclipse Dateien einzeln aus einem Verzeichnis laden! Allgemeine Java-Themen 6
B ObjectOutputStream verzeichnis wählen Allgemeine Java-Themen 8
Benji0815 Verzeichnis wie im Windows Explorer in einem JTree anzeigen Allgemeine Java-Themen 6
L Applet Verzeichnis lesen Allgemeine Java-Themen 3
B Verzeichnis durchsuchen geschwindigkeit optimieren Allgemeine Java-Themen 6
B in welchem verzeichnis liegen alle installierten klassen? Allgemeine Java-Themen 6
G Klassen aus Verzeichnis laden Allgemeine Java-Themen 13
G Zwischen Datei und Verzeichnis unterscheiden. Allgemeine Java-Themen 11
C Velocity liest template-Dateien nicht aus einem Verzeichnis Allgemeine Java-Themen 3
heart_disease Verzeichnis-Probleme mit ZIP Allgemeine Java-Themen 4
M Verzeichnis durchlaufen und Dateien umbennen Allgemeine Java-Themen 2
P Verzeichnis in JAR-Datei durchgehen Allgemeine Java-Themen 2
G Dateien und Verzeichnisse in einem Verzeichnis zählen Allgemeine Java-Themen 9
W Verzeichnis für Benutzerfiles Allgemeine Java-Themen 7
S Ist File ein root-Verzeichnis? Allgemeine Java-Themen 2
J Herangehensweise: FTP-Transfer von Verzeichnis Allgemeine Java-Themen 8
G Java Klasse in einem anderen Verzeichnis aufrufen Allgemeine Java-Themen 3
H mit javac Verzeichnis kompilieren Allgemeine Java-Themen 2
E Existierendes Verzeichnis nicht gefunden Allgemeine Java-Themen 4
M Verzeichnis auslesen - Fehler in isDirectory()? Allgemeine Java-Themen 4
F Verzeichnis, in dem sich die ausführende jar Datei befindet Allgemeine Java-Themen 9
K Verzeichnis rekursiv aus JAR-Datei extrahieren Allgemeine Java-Themen 6
O Ein Verzeichnis aus der Root ablesen/Dateitypen registrieren Allgemeine Java-Themen 5
P Verzeichnis auwählen Allgemeine Java-Themen 2
S Starten einer Anwendung von einem anderen Verzeichnis Allgemeine Java-Themen 3
P Mit getResource() ein ganzes Verzeichnis laden Allgemeine Java-Themen 5
T Verzeichnis der Klasse Allgemeine Java-Themen 7
J Verzeichnis aus meinem JAR auslesen und abspeichern. Allgemeine Java-Themen 2
G Verzeichnis löschen? Allgemeine Java-Themen 3
S Probleme mit dem Compilieren von Dateien in Verzeichnis Allgemeine Java-Themen 4
G Dateien zählen im Verzeichnis Allgemeine Java-Themen 11
A Verzeichnis auflisten - auch innerhalb eines Jars Allgemeine Java-Themen 6
G Verzeichnis überwachen Allgemeine Java-Themen 13
S Temporäres Verzeichnis anlegen? Allgemeine Java-Themen 4
G Java Runtime Verzeichnis ermitteln Allgemeine Java-Themen 3
S dringend-verzeichnis von festplatte einlesen Allgemeine Java-Themen 9
P Dateinamen testen? Schreibrechte auf Verzeichnis testen? Allgemeine Java-Themen 8
M Verzeichnis verschieben? Allgemeine Java-Themen 2
G Bestimmte Dateien aus Verzeichnis löschen Allgemeine Java-Themen 5
W Primitive Datentypen - Klassenpfad auflösen? Allgemeine Java-Themen 6
B Input/Output version.cfg konnte nicht im Klassenpfad gefunden werden, ist aber dort. Allgemeine Java-Themen 0
reibi Klassenpfad mal anders - dynamisches Laden einer Klasse Allgemeine Java-Themen 7
reibi Klassenpfad für jar-Files Allgemeine Java-Themen 7
I Neue Klassenbibliothek in Klassenpfad einbinden Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben