Ich bin wirklich in zwei Teile stecken. A) Ich brauche das Programm, um das Verzeichnis der RUNNING JAR FILE zu finden und zu überprüfen, ob es eine Datei namens "credits.txt" im gleichen Verzeichnis gibt. B) Wenn nicht, würde es die Datei im gleichen VERZEICHNIS erstellen.Java - Erstellen Sie eine Datei im gleichen Verzeichnis wie die .jar, wenn sie nicht bereits existiert
Das Hauptproblem ist nicht in der Lage, den Pfad meiner Datei zu erhalten.
Angenommen, die laufende JAR-Datei befand sich in einem Ordner namens "Server", das Programm speicherte den Namen "Server" in einer Zeichenfolge und prüfte dann, ob in dieser Zeichenfolge eine Datei vorhanden ist. Wenn ja, tun Sie nichts, andernfalls erstellen Sie die Datei.
@Override
public void onEnable(){
getLogger().info(ChatColor.GREEN + "Credits has been enabled!");
File file = new File("Credits.txt");
//HERE I NEED THE PROGRAM TO CHECK WHAT DIRECTORY THE RUNNING JAR FILE IS FROM
if (file.exists(//IN THE SAME DIRECTORY AS THE RUNNING JAR FILE)){
getLogger().info(ChatColor.DARK_GREEN + "Credits File Exists");
}else{
getLogger().info(ChatColor.DARK_RED + "Credits File Doesn't Exist!");
//HERE IT NEEDS TO CREATE THE FILE IN THE SAME DIRECTORY OF THE JAR FILE "credits.txt"
}
Und was ist deine Schwierigkeit? Beachten Sie, dass das aktuelle Arbeitsverzeichnis (wo es nach Dateien ohne vollständigen Pfad sucht) nicht unbedingt die Position der Datei "jar" ist. – RealSkeptic
Nein, es ist keine "einfache Sache", und tatsächlich scheint Java zu versuchen, Sie davon abzuhalten, dies zu tun. Ich erinnere mich nicht an die Details, wie man das Jar-Verzeichnis findet, aber es beinhaltet einige Verzerrungen. Ich scheine mich an die Notwendigkeit zu erinnern, einige "Sicherheits" -Klassen oder Methoden zu verwenden. Suchen Sie nach dem Pfad zu einer JAR-Datei, um die Details zu erhalten. –
Ah, [hier ist es] (http://stackoverflow.com/questions/2837263/how-do-i-get-the-directory-that-the-currently-executing-jar-file-isin-). Nicht "Sicherheit", sondern "geschützt". 'getClass(). getProtectionDomain(). getCodeSource(). getLocation()' –