From: Magnus Warker on
Hallo,

wie kann man denn auf eine Ressource (File) zugreifen, das im obersten
Package liegt bzw. in einem Package ohne Klassen?

Ich habe versucht, von einer existierenden Klasse nach oben zu wandern
("../"), aber das klappt nicht:

Class c = getClass();
ClassLoader l = c.getClassLoader ();
InputStream s = c.getResourceAsStream ("../test.cfg");

Magnus
From: John B. Matthews on
In article <i02ql3$b8f$1(a)news.m-online.net>,
Magnus Warker <magnux(a)mailinator.com> wrote:

> wie kann man denn auf eine Ressource (File) zugreifen, das im
> obersten Package liegt bzw. in einem Package ohne Klassen?
>
> Ich habe versucht, von einer existierenden Klasse nach oben zu
> wandern ("../"), aber das klappt nicht:
[Google translation]
> how can you access a resource (file), the highest in the
> Package is in a package or without classes?
>
> I have tried from an existing class to move upwards
> ("../"), But that does not work:
[Google translation]
> Class c = getClass();
> ClassLoader l = c.getClassLoader ();
> InputStream s = c.getResourceAsStream ("../test.cfg");

Try c.getResourceAsStream() or c.getResource() [1]; these methods use
"/" to signify the top level. For example, GoogleOlympiad [2] has a
single class in the default package, so the "/" is optional. In
contrast, RobotChase [3] uses a conventional package hierarchy, so the
"/" is required.

[1]<http://java.sun.com/javase/6/docs/api/java/lang/Class.html>
[2]<http://sites.google.com/site/drjohnbmatthews/googleolympiad>
[3]<http://robotchase.svn.sourceforge.net/viewvc/robotchase/trunk/src/org
/gcs/robot/RCImage.java?revision=64&view=markup>

--
John B. Matthews
trashgod at gmail dot com
<http://sites.google.com/site/drjohnbmatthews>
From: Magnus Warker on
Thank you, this worked!

Magnus

John B. Matthews wrote:

> Try c.getResourceAsStream() or c.getResource() [1]; these methods use
> "/" to signify the top level. For example, GoogleOlympiad [2] has a
> single class in the default package, so the "/" is optional. In
> contrast, RobotChase [3] uses a conventional package hierarchy, so the
> "/" is required.

From: Mike Amling on
Magnus Warker wrote:
> Hallo,
>
> wie kann man denn auf eine Ressource (File) zugreifen, das im obersten
> Package liegt bzw. in einem Package ohne Klassen?
>
> Ich habe versucht, von einer existierenden Klasse nach oben zu wandern
> ("../"), aber das klappt nicht:
>
> Class c = getClass();
> InputStream s = c.getResourceAsStream ("../test.cfg");

Erst bin ich kein Expert. getResourceAsStream ist mir fremd.
Sie haben, zum Beispiel, Class com.xyz.pkg.MeinClass, und Sie suchen
com/xyz/test.cfg vom $CLASSPATH, nicht?

javadoc sagt "If the name begins with a '/' ('\u002f'), then the
absolute name of the resource is the portion of the name following the '/'."


Deshalb schlage ich

InputStream s = c.getResourceAsStream("/com/xyz/test.cfg");

vor.

--Michael "Meik" Amling