getResourceAsStream immer null

Status
Nicht offen für weitere Antworten.
M

meisterlampe

Gast
Habe ein fettes Problem:

Folgender Code funzt in Eclipse wunderbar:
Code:
package test.files.;

import java.net.URL;

public class FontTest
{

	public static void main(String[] args)
	{
	    System.out.println(FontTest.class.getClassLoader().getResourceAsStream("test/files/"));
	}

}

Ausgabe in Eclipse:
java.io.ByteArrayInputStream@dbe178

Funzt also!


Gepackt zum test.jar:

java -cp "test.jar" test.files.FontTest

Ausgabe: null


Wieso ist das so? Es ist doch im Classpath? Falscher Classloader??
 
M

meisterlampe

Gast
Folgendes geht auch nicht:
Code:
System.out.println(Thread.currentThread().getContextClassLoader().getResourceAsStream("test/files/"));
System.out.println(FontTest.class.getClassLoader().getResourceAsStream("test/files/"));
System.out.println(FontTest.class.getResourceAsStream("/test/files/"));
System.out.println(ClassLoader.getSystemResourceAsStream("test/files/"));

Eclipse:
java.io.ByteArrayInputStream@dbe178
java.io.ByteArrayInputStream@1af9e22
java.io.ByteArrayInputStream@b6ece5
java.io.ByteArrayInputStream@17ace8d

Funzt also!

mit java -cp "test.jar" test.files.FontTest:
null
null
null
null

Irgendwie geht garnix!!
 
M

meisterlampe

Gast
Java macht mich wahnsinnig bin immer noch nicht auf eine Lösung gekommen!
Ich möchte in einem Programm auf die Art prüfen ob das Verzeichnis existiert und ggf. Dateien daraus laden. :x
 
M

meisterlampe

Gast
Problem gelöst!
Übrigens funktioniert das obige Beispiel in beiden fällen, dachte es für euch möglichst nachvollziehbar machen zu müssen und dann wars so simple das es funktionierte.

Mein echtes Beispiel funktionierte in einem anderen Zusammenhang nicht, aber egal.

Die Punkte für die oft angesprochenen Probleme bezgl. des Lesens von Dateien aus Jars sind 2 Dinge.

1. jar fehlt im classpath
2. jar ist im classpath nur die SICHTBARKEIT ist falsch

Ein Beispiel:
Klassen die sich im im Package "/test/files" befinden, können nur von dort
und natürlich aus den Unterverzeichnissen heraus "hier: /files" ihre Resourcen laden, wegen der Sichtbarkeit.

Deswegen bekam ich in meinem eigenen Beispiel bei getResourceAsStream() null zurück, da die Resource sich nicht in der Sichtbarkeit der Klasse befand.

Es gibt ja auch neben private, public, protected noch package!

Wenn ich nun beispielsweise getClass().getResource() verwende funktioniert das in den wenigsten Fällen, da von der Klasse Object aus gegangen wird, und so Resourcen im Package nicht gefunden werden.

Benutze ich nun this.getClass().getResource() funktioniert das schön eher, da nun eine Konkrete Klasse gefunden wird z.B. FontTest im Package /test/files/ aus der heraus eben das "this.getClass().getResource()" aufgerufen wird.
 
M

meisterlampe

Gast
Hi ich bins nochmal.
Den obigenText bitte vergessen. Dachte gestern in geistiger Umnachtung die Lösung gefunden zu haben.

Folgendes wars aber wirklich, hab ich nach langer Suche im Netz gefunden:

I found the problem. I had exported the jar from Eclipse but hadn't
checked the "Add directory entries" checkbox. The way ResolverUtil works
now is to translate the package to a directory then ask the ClassLoader
for the directory. If a separate directory entry doesn't exist in the
jar the ClassLoader will return an empty Enumeration. :(

It looks like it could be a bug in
Code:
ClassLoader.getResources()
. :(

This behavior probably needs to be documented somewhere so others don't
get bitten by it.

Aaron
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Class.getResourceAsStream() gibt null zurück Allgemeine Java-Themen 2
S Datei wird nicht gefunden Thread.currentThread().getContextClassLoader().getResourceAsStream() Allgemeine Java-Themen 1
O getResourceAsStream() Allgemeine Java-Themen 2
nrg new Reader(dateiname) und getResourceAsStream Allgemeine Java-Themen 17
B getResourceAsStream - standalone Anwendung vs. Web-Anwendung Allgemeine Java-Themen 2
I Alternative zu getClass().getResourceAsStream() ? Allgemeine Java-Themen 9
F mit getResourceAsStream () Datei im Classpath suchen Allgemeine Java-Themen 15
D GetResourceAsStream - Stream closed exception Allgemeine Java-Themen 5
S Java öffnet immer im editor Allgemeine Java-Themen 1
N Eingabe wird immer als "false" ausgegeben Allgemeine Java-Themen 6
kodela bestimmten Dateityp immer mit jar-Datei öffnen Allgemeine Java-Themen 17
C FileLock - Exception wird immer geworfen Allgemeine Java-Themen 4
W Haben Konstruktoren in Java eigentlich immer mindestens einen Parameter? Allgemeine Java-Themen 4
C Variablen == gibt immer false aus. Allgemeine Java-Themen 2
@SupressWarnings() Multilanguaging lädt immer falsch Allgemeine Java-Themen 5
A Swing Immer aktuelle Mausposition anzeigen lassen Allgemeine Java-Themen 7
F Java Mail Problem: Authentifizierung wird nicht immer mitgeschickt Allgemeine Java-Themen 1
T Textarea text wird immer überschrieben Allgemeine Java-Themen 4
J StringTokenizer - Trennzeichen nicht immer beachten Allgemeine Java-Themen 2
B Threads Timer wird immer schneller Allgemeine Java-Themen 6
S Zahlen aus (String mit zahlen) immer wieder neu auslesen Allgemeine Java-Themen 5
I Java Applet wird immer blockiert Allgemeine Java-Themen 3
AssELAss Zeilenumbruch immer nach bestimmtem Zeichen Allgemeine Java-Themen 1
Y Prüfen ob ein Graph immer einen von mehren Enden erreicht Allgemeine Java-Themen 4
E Immer nur der Catch-Zweig Allgemeine Java-Themen 3
T Variablenübergabe liefert immer null Allgemeine Java-Themen 13
iB0T "goto" Befehl aus Batch in Java und Variablen wert immer wieder neu setzen Allgemeine Java-Themen 4
K Image beim catchen ist immer null Allgemeine Java-Themen 9
M Input/Output Datei erzeugen funktioniert nicht (immer) vom .jar aus Allgemeine Java-Themen 5
7 String in Int, immer ein Anführungszeichen Allgemeine Java-Themen 4
T Wie heißt ein Binärbaum, dessen Knoten immer zwei Kinder haben müssen? Allgemeine Java-Themen 2
D Webseite wird nicht immer komplett ausgelesen Allgemeine Java-Themen 11
2 Array immer die Mitte (Nicht trivial) Allgemeine Java-Themen 4
R JNI if abfrage gibt immer false zurück. Allgemeine Java-Themen 7
E rückgabewert ist immer null Allgemeine Java-Themen 2
H2SO3- bestimmte class immer mit 1.4 compilieren Allgemeine Java-Themen 5
S HashMap containsKey liefert immer false zurück Allgemeine Java-Themen 15
D Api mit eine Methode die "immer" läuft bis "stop" "gerufen wird. Allgemeine Java-Themen 25
VfL_Freak ServerSocket wirft nicht immer eine BindException Allgemeine Java-Themen 21
J Comparable aber nicht immer Allgemeine Java-Themen 15
D KeyEvents immer fangen Allgemeine Java-Themen 5
data89 A-Stern: fährt immer wieder vor die Wand! - Hilfeeee Allgemeine Java-Themen 7
L Applet immer wieder neu laden - Problem Allgemeine Java-Themen 25
V Hostname abfragen gelingt nicht immer Allgemeine Java-Themen 2
S Wieso stehen in der API immer wieder abstrakte Methoden ? Allgemeine Java-Themen 7
S Methode übergibt immer den gleichen Wert Allgemeine Java-Themen 21
thE_29 Generic Methoden die sich aufrufen wollen nicht immer Allgemeine Java-Themen 12
A Rekursives Programm wird immer langsamer Allgemeine Java-Themen 10
T jmf - Immer "Unable to handle fo rmat:" Allgemeine Java-Themen 2
B in file immer 2. zeile überschreiben Allgemeine Java-Themen 8
J Variabeln immer klein aber. Allgemeine Java-Themen 4
T Log4J: Bei Programmstart immer eine neue LogDatei erzeugen Allgemeine Java-Themen 9
M Double immer mit 2 Kommastellen Allgemeine Java-Themen 3
B RXTX sendet immer mit 9600Baud Allgemeine Java-Themen 4
J Eigener ClassLoader wird nicht immer verwendet Allgemeine Java-Themen 3
J Immer noch OpenOffice.org - Malheur Allgemeine Java-Themen 4
R Immer wieder NullPointerException Allgemeine Java-Themen 2
G Programm wird immer langsamer Allgemeine Java-Themen 7
Ark Bild immer als ARGB laden Allgemeine Java-Themen 2
spacegaier invokeLater wird doch immer ausgeführt, oder? Allgemeine Java-Themen 8
S Job immer wieder ausführen Allgemeine Java-Themen 4
G wieso wird der String des StringBuilder immer länger? Allgemeine Java-Themen 2
P Filechooser öffnet sich immer wieder neu Allgemeine Java-Themen 4
M Wenn immer nur einer darf . Allgemeine Java-Themen 3
S Eclipse zeigt build.xml immer als fehlerhaft Allgemeine Java-Themen 12
M Mausposition immer lesen können Allgemeine Java-Themen 18
M Datei immer auslesen können, auch im JAR Allgemeine Java-Themen 7
S Prozess javaw.exe läuft immer noch, obwohl Programm beendet Allgemeine Java-Themen 6
H Objekte verbrauchen immer mindestens 16 Bytes Allgemeine Java-Themen 3
E ArrayList referenziert immer auf das gleiche Objekt Allgemeine Java-Themen 2
G Consoleneingabe wird nicht immer gelesen Allgemeine Java-Themen 2
S Web Applikation wird immer langsamer Allgemeine Java-Themen 5
M statische regex und vergleiche oder immer wieder compilen Allgemeine Java-Themen 2
thE_29 Werden die SUN JVMs immer blöder oder was soll das. Allgemeine Java-Themen 11
K Date: getTime immer gleich Allgemeine Java-Themen 4
G Servlet - "Client immer am neuesten Stand" Allgemeine Java-Themen 2
S JMF & Lied immer wiederholen Allgemeine Java-Themen 7
J Integer.parseInt funktioniert nicht immer Allgemeine Java-Themen 3
thE_29 Konsolenausgabe immer am gleichen Platz Allgemeine Java-Themen 14
Zrebna Wieso sollte man Null-Prüfungen nicht mit Optional-Objekten nutzen? Allgemeine Java-Themen 13
Zrebna SonarLint: Warum kein Null-Referencing-CodeSmell-Hint hier? Allgemeine Java-Themen 23
OnDemand Java String in Hashmap als Key NULL Allgemeine Java-Themen 27
8u3631984 Argument Captor liefert NULL zurück Allgemeine Java-Themen 2
Zrebna Gibt es eine Möglichkeit eine NPE zu vermeiden, wenn null returned wird? Allgemeine Java-Themen 3
J Zahlen Abstand zur Null bestimmen Allgemeine Java-Themen 11
C javax.mail.Message message.setreplyto() null setzen (keine replyto Adresse) Allgemeine Java-Themen 25
S An internal error occurred during: Launching null argument Allgemeine Java-Themen 1
S Validation Null aber nicht Blank und muss Email sein Allgemeine Java-Themen 22
L Google Guice Field Injection returns null Allgemeine Java-Themen 2
E RMI NULL-Pointer-Exeception wenn der RMI-Proxy eine Methode deligiert Allgemeine Java-Themen 2
J Java Objekte = null, Garbagecollector Allgemeine Java-Themen 12
N MsgPack - Null Check Allgemeine Java-Themen 5
T JasperReports mit Null Pointer Allgemeine Java-Themen 3
DanielsLPecke Compiler-Fehler Warum ist der String null? Allgemeine Java-Themen 10
M Warten bis Variabel nicht null ist Allgemeine Java-Themen 18
Thallius Simple JSON Parser Error null Allgemeine Java-Themen 6
M Null byte in verschiedenen charsets Allgemeine Java-Themen 2
S Lambda Ausdrücke: @FunctionalInterface Instanzen auf null prüfen Allgemeine Java-Themen 9
B [Android] EditText-Object ist null - Nimmt nicht den Wert des enthaltenen Textfeldes ein Allgemeine Java-Themen 2
D Java Process OutputStream ist null Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben