3 Stimmen

Die Standard-Stammordner für ein Eclipse-Projekt finden

Ich lese eine Datei wie folgt ein:

File imgLoc = new File("Player.gif");

BufferedImage image = null;

try {
    image = ImageIO.read(imgLoc);
}
catch(Exception ex)
{
    System.out.println("Fehler beim Bild lesen");
    System.exit(1);
}

return image;

Ich weiß nicht, wo ich meine Datei platzieren soll, damit die Eclipse IDE und mein Projekt sie erkennen können, wenn ich meinen Code ausführe.

Gibt es einen besseren Weg, ein BufferedImage aus einer Bilddatei zu erstellen, die im Projektverzeichnis gespeichert ist?

4voto

Wayne Beaton Punkte 306

Schauen Sie sich die Kommentare zu Class.getResource und Class.getResourceAsStream an. Dies sind wahrscheinlich das, was Sie wirklich verwenden möchten, da sie funktionieren, egal ob Sie aus dem Verzeichnis eines Eclipse-Projekts oder aus einer JAR-Datei nach dem Verpacken heraus ausgeführt werden.

Sie verwenden sie in etwa so:

InputStream in = MyClass.class.getResourceAsStream("Player.gif");

In diesem Fall würde Java nach der Datei "Player.gif" neben der Datei MyClass.class suchen. Das heißt, wenn der vollständige Paket-/Klassenname "com.package.MyClass" ist, wird Java nach einer Datei im "[Projekt]/bin/com/package/Player.gif" suchen. Die Kommentare zu getResourceAsStream geben an, dass wenn Sie mit einem Schrägstrich beginnen, z.B. "/Player.gif", dann wird es im Stammverzeichnis (d.h. im "bin"-Verzeichnis) suchen.

Beachten Sie, dass Sie die Datei im "src"-Verzeichnis ablegen können und Eclipse sie automatisch zur Buildzeit in das "bin"-Verzeichnis kopiert.

3voto

pstanton Punkte 32494

Von meiner Erfahrung aus scheint es standardmäßig das enthaltene Projektverzeichnis zu sein, aber es gibt einen einfachen Weg, um es herauszufinden:

System.out.println(new File(".").getAbsolutePath());

0 Stimmen

Dies druckt den Installationspfad des Eclipse-Wurzelverzeichnisses.

3voto

tangens Punkte 37853

Im Ausführungsdialogfeld können Sie das Verzeichnis auswählen. Standardmäßig handelt es sich um das Projektstammverzeichnis.

1voto

Mikael Ohlson Punkte 2592

Versuchst du ein Plugin für Eclipse zu schreiben oder handelt es sich um ein reguläres Projekt?

Im letzteren Fall würde das wohl davon abhängen, wo das Programm letztendlich installiert und ausgeführt wird, oder?

Wenn du es ausprobierst und von Eclipse ausführst, würde ich vermuten, dass es die Datei im Projekt-Workspace finden würde. Du solltest das herausfinden können, indem du den Eigenschaften-Dialog für das Projekt öffnest und unter dem Eintrag Ressource nachsiehst.

Zudem kannst du Ressourcen zu einem Projekt hinzufügen, indem du die Option Importieren im Menü verwendest.

0voto

Ivan Punkte 374

Der Standard-Stammordner für jedes Eclipse-Projekt ist auch ein relativer Pfad dieser Anwendung.

Im Folgenden sind die Schritte aufgeführt, die ich für mein Eclipse 4.8.0 und Java 1.8 Projekt verwendet habe.

I - Platzieren Sie Ihre Datei, mit der Sie interagieren möchten, entlang der BIN- und SRS-Ordner Ihres Projekts und nicht in einem dieser Ordner.

II - Implementieren Sie den folgenden Code in Ihrer main()-Methode.

public static void main(String [] args) throws IOException  {

FileReader myFileReader;
BufferedReader myReaderHelper;

try {

String localDir = System.getProperty("user.dir");
myFileReader = new FileReader(localDir + "\\yourFile.fileExtension");
myReaderHelper = new BufferedReader(myFileReader);

if (myReaderHelper.readLine() != null)  {

StringTokenizer myTokens =
    new StringTokenizer((String)myReaderHelper.readLine(), "," );
    System.out.println(myTokens.nextToken().toString()); // - liest das erste Element
}
} catch (FileNotFoundException myFileException) {
    myFileException.printStackTrace();  }     } // Ende von main()

III - Implementieren Sie eine Schleife, um durch die Elemente Ihrer Datei zu iterieren, wenn Ihre Logik dies erfordert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X