Ich bekomme diese Datei nicht gefunden Ausnahmen beim Ausführen der. JAR, aber nicht, wenn meine Anwendung in Netbeans ausgeführt wird. Hier sind die Fehlermeldungen, wobei ein aktuelles Verzeichnis oben gedruckt wird.Java .jar Datei nicht finden Systemdatei, wenn es da ist und den richtigen Pfad
adam @ Adam ~/Dropbox/linuxWorkspace/Netbeans/EveMarketCalculater/dist $ java -jar "EveMarketCalculater.jar"
Aktuelle sys dir:/home/adam/Dropbox/linuxWorkspace/Netbeans/EveMarketCalculater/dist
java.io.FileNotFoundException: file: /home/adam/Dropbox/linuxWorkspace/Netbeans/EveMarketCalculater/dist/EveMarketCalculater.jar /inputOutput/TypeID.csv (Keine solche Datei oder das Verzeichnis) bei java.io.FileInputStream .open0 (Native Methode) bei java.io.FileInputStream.open (FileInputStream.java:195) bei java.io.FileInputStream. (FileInputStream.java:138) bei java.io.FileInputStream. (FileInputStream.java:93) bei java.io.FileReader. (FileReader.java:58) bei inputOutput.csvParser.readFile (csvParser.java:54) bei inputOutput.csvParser. (csvParser.java:24) bei evemarketcalculater.EveMarketCalculater.main (EveMarketCalculater.java:39)
java.io.FileNotFoundException: file:/home/adam/Dropbox/linuxWorkspace/Netbeans/EveMarketCalculater/dist/EveMarketCalculater. Glas! /inputOutput/Regions.csv (Keine solche Datei oder das Verzeichnis) bei java.io.FileInputStream.open0 (Mutter Methode) bei java.io.FileInputStream.open (FileInputStream.java:195) bei java.io. FileInputStream. (FileInputStream.java:138) bei java.io.FileInputStream. (FileInputStream.java:93) bei java.io.FileReader. (FileReader.java:58) bei inputOutput.csvParser.readFile (csvParser.java:54) bei inputOutput.csvParser. (csvParser.java:24) bei evemarketcalculater.EveMarketCalculater.main (EveMarketCalculater.java:42)
java.io.FileNotFoundException: file:/home/adam/Dropbox/linuxWorkspace/Netbeans/EveMarketCalculater/dist/EveMarketCalculater. jar! /inputOutput/SolarSystems.csv (Keine solche Datei oder Verzeichnis) bei java.io.FileInputStream.open0 (Native Methode) bei java.io.FileInputStream.open (FileInputStream.java:195) bei java.io. FileInputStream. (FileInputStream.java:138) bei java.io.FileInputStream. (FileInputStream.java:93) bei java.io.FileReader. (FileReader.java:58) bei inputOutput.csvParser.readFile (csvParser.java:54) bei inputOutput.csvParser. (csvParser.java:24) bei evemarketcalculater.EveMarketCalculater.main (EveMarketCalculater.java:45)
java.io.FileNotFoundException: file:/home/adam/Dropbox/linuxWorkspace/Netbeans/EveMarketCalculater/dist/EveMarketCalculater. Glas! /inputOutput/MyOrders.csv (Keine solche Datei oder das Verzeichnis) bei java.io.FileInputStream.open0 (Mutter Methode) bei java.io.FileInputStream.open (FileInputStream.java:195) bei java.io. FileInputStream. (FileInputStream.java:138) bei java.io.FileInputStream. (FileInputStream.java:93) bei java.io.FileReader. (FileReader.java:58) bei inputOutput.csvParser.readFile (csvParser.java:96) bei inputOutput.csvParser. (csvParser.java:29) bei evermarketcalculator.EveMarketCalculator.main (EveMarketCalculator.java: 48)
Hier einige Quellcode, wie ich diese Dateien am Zugriff auf:
public final void readFile(String file, int index1, int index2)
{
BufferedReader br = null;
String line = "";
String cvsSplit = ",";
idList = new ArrayList();
try
{
URL url = csvParser.class.getResource(file);
br = new BufferedReader(new FileReader(url.getPath()));
while((line = br.readLine()) != null)
{
String[] item = line.split(cvsSplit);
idList.add(item[index1].replace("\"",""));
idList.add(item[index2].replace("\"",""));
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
if(br != null)
{
try
{
br.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
public static void writeMyOrders()
{
URL url = csvParser.class.getResource("MyOrders.csv");
FileWriter w = null;
csvWriter c = null;
try
{
// Empty file cotents
PrintWriter writer = new PrintWriter(url.getPath());
writer.close();
w = new FileWriter(url.getPath());
c = new csvWriter();
}
catch(Exception ex)
{
ex.printStackTrace();
}
for(int i = 0; i < myOrders.size(); i++)
{
try
{
c.writeLine(w, myOrders.get(i));
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
if(w != null)
try
{
w.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
Jede Ahnung, warum dies nicht funktioniert? Es verfolgt offensichtlich den richtigen Dateipfad und die Dateien befinden sich innerhalb der .jar-Datei in diesen Pfaden. Ich laufe in einer Linux-Befehlszeile, wenn das wichtig ist.
Hier ist der Beweis, dass die Dateien existieren.
Dies funktioniert beziehen. Wie würde ich dies tun, um in diese Dateien zu schreiben? Auch wenn Sie ein wenig mehr erklären könnten, warum das Erhalten einer Ressource als ein Strom funktioniert, aber es mit Leser holend, würde ich es nicht schätzen. – user3471443
In Bezug auf das Schreiben, speziell etwas, das für meine zweite Methode im ursprünglichen Beitrag gilt. Ich habe die ursprünglichen Fehler hinter mir gelassen und es fällt jetzt der gleiche Fehler, wenn ich dort angekommen bin. Der PrintWriter wird verwendet, um den Dateiinhalt zu löschen, und dann verwende ich den FileWriter, um den Dateiinhalt zu aktualisieren – user3471443