java.io.listFiles()

gbunge

Aktives Mitglied
Hallo,
Mein System: MacBook pro mit Ventura 13.5.
Ursprung-OS :Mojave.

Ich habe mir vor ein paar Jahren ein Java-Programm zum Auslesen von
runtergeladenen Bankdaten geschrieben.
Da diese Dateien jedesmal andere Namen haben, mit einer Konstanten, der Kontonummer,
muss ich den Downloadordner auslesen und in den Dateinamen die Konstante suchen.
Zum Starten des Programms durch Anklicken habe ich mir einen Alias auf den Schreibtisch geladen.

Seit dem Update auf Ventura funktioniert das nicht mehr.
Der Grund ist, die Funktion " java.io.listFiles()"
die funktioniert nur noch mit dem Aufruf " java -jar Download.jar" oder
dem Start aus NetBeans.
Doppelklick auf den Alias oder das Jar-File direkt führen nicht zum Erfolg.

Ich habe dann das Programm geändert und mir meine eigene Klasse "MyListFile" geschrieben.
Doch das Problem bleibt gleich.
Aus der IDE oder mit Standart Javastart ist alles in Ordnung.
Doppelklick auf Jar-File, oder Alias auf dem Schreibtisch bringt nichts.

Woran liegt das?

Gruss GBunge
 
Also da kannst Du prüfen:
a) Mit was werden jar Files geöffnet? Stimmt das? Ist da das Richtige ausgewählt? Also mal über den Finder die Informationen zu der jar Datei prüfen.
b) Ich bin mir gerade nicht ganz sicher, wie das mit den ganzen Rechten aussieht. macos sichert ja die Dateien im Home-Verzeichnis des Users noch speziell ab und falls es da am Zugriff liegt, dann könnte es sein, dass das java Executable von der Kommandozeile die Rechte hat und über JavaLauncher nicht. (Das mit den Rechten von java hat mich auch schon öfters genervt zumal macos bei mir oft nicht nachfragt, ob man dem Programm den Zugriff erlauben möchte....)

Was ich da generell empfehlen würde: Statt ein executable jar File würde ich immer über JPackage ein Image bauen, das sich dann in macos wie eine normale App verhält. Daher: aktuelles Java nutzen und dann entsprechend die App bauen.
 
Hallo KonradN,
danke für die schnelle Antwort. Bitte gib einen Hinweis, wie ich unter NetBeans
aus dem Executable ein Package mache, und was das dann bedeutet.
Gruss GBunge
 
Ich würde Dir da empfehlen, das Projekt einmal auf Maven umzustellen (so Du noch kein Maven verwendest) und dann kann man das im Projekt einfach einfügen. Wie so ein Eintrag aussehen kann, siehst Du z.B. in dem Projekt kneitzel/JavaMavenApp (github.com) von mir. Das Projekt kannst Du auch relativ einfach als Basis nehmen um dann auch so Dinge wie statische Codeanalyse und so mit zu bekommen.
 

Neue Themen


Zurück
Oben