Path: csiph.com!1.us.feeder.erje.net!2.eu.feeder.erje.net!feeder.erje.net!newsreader4.netcologne.de!news.netcologne.de!.POSTED.2a0a-a545-a791-0-27e0-e26-1a16-f761.ipv6dyn.netcologne.de!not-for-mail From: Patrick Roemer Newsgroups: de.comp.lang.java Subject: Re: Wie komme ich von einer URL zu einem Dateinamen? Date: Tue, 16 May 2023 14:49:18 +0200 Organization: news.netcologne.de Distribution: world Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Tue, 16 May 2023 12:49:18 -0000 (UTC) Injection-Info: newsreader4.netcologne.de; posting-host="2a0a-a545-a791-0-27e0-e26-1a16-f761.ipv6dyn.netcologne.de:2a0a:a545:a791:0:27e0:e26:1a16:f761"; logging-data="1633155"; mail-complaints-to="abuse@netcologne.de" User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.24) Gecko/20100411 Thunderbird/2.0.0.24 Mnenhy/0.7.6.0 Content-Language: en-US In-Reply-To: Xref: csiph.com de.comp.lang.java:13453 Responding to Peter Müller: > InputStream inputStream = > MainWindow.class.getResourceAsStream("InitializeAudio.mp3"); > > Was nicht funktioniert: > > InputStream inputStream_geht_nicht_1 = > ClassLoader.getSystemResourceAsStream("InitializeAudio.mp3"); > InputStream inputStream_geht_nicht_2 = > MainWindow.class.getClassLoader().getResourceAsStream("InitializeAudio.mp3"); "Funktioniert nicht" ist nie eine sinnvolle Fehlerbeschreibung. Wenn Du, egal wo, wirklich Hilfe erhalten willst, solltest Du alle potentiellen Informationen zur Verfügung stellen, hier etwa: Exception stack trace oder Beschreibung des unerwarteten Verhaltens, Dateisystemlayout der class path resources, etc. Class#getResource[AsStream]() sucht bei einem relativen URL-"Pfad" (ohne führenden Slash) die Ressource relativ zum Package-Pfad der Klasse. ClassLoader#getResource[AsStream]() geht immer von einem absoluten Pfad aus. https://www.baeldung.com/java-class-vs-classloader-getresource Bei mir tut es problemlos mit getClass.getResource("/audio.mp3"), wenn die Datei top level im class path liegt, und mit getClass.getResource("audio.mp3"), wenn die Datei in einen Pfad analog zur Package der Klasse liegt - kein Handstand mit temporären Dateien notwendig.