2012-01-03 5 views
1

J'ai besoin de charger un fichier .xml dans META-INF, cela fonctionne quand l'application n'est pas en sandbox, mais en Java Web Start un classloader différent (qui est plus restreint) semble être utilisé, donc le fichier trouvé dans myproj.jar/META-INF/myfile.xml n'est pas chargé. Il fonctionne cependant si je mets le fichier dans le répertoire courant de la classe de chargement (je le mets sous com/blabla/myproj/quelquechose/META-INF/monfichier.xml).Classpath dans une application Java Web Start

Je ne pouvais pas trouver de paramètres de chemin de classe dans le fichier .jnlp, mais peut-être cela peut-il être fait avec un manifeste? Je ne sais pas comment ils fonctionnent, donc si c'est la solution, donnez un exemple.

Répondre

2

Stuff dans META-INF devrait pas être lisible par code dans votre fichier jar, puisque ce code doit être agnostique au fait qu'il est emballé dans un JAR. Au lieu de cela, puisque c'est meta information (meta-inf) sur le pot lui-même, seule l'application qui charge le fichier jar devrait y accéder.

+0

Ah, merci! Savez-vous où je devrais mettre les fichiers .xml dans Eclipse et où ils se retrouvent dans le fichier .jar? Et comment je les charge? –

+0

@Jonas: Si vous les mettez simplement dans le même dossier que vos fichiers Java, Eclipse les copiera probablement dans le Jar pour vous (et ils seront sur le classpath). Dans le Jar, il sera empaqueté comme un fichier de classe ('/ com/yourcompany/paquet/yourfile.xml'). Placez-le au bon endroit dans la structure de votre emballage. Une autre organisation commune consiste à avoir un dossier "resources" distinct qui est parallèle à la structure du package, mais vous devrez alors configurer Eclipse pour copier les ressources dans le fichier Jar. Cela fait longtemps que je n'ai pas utilisé Eclipse, alors il faudrait que vous réfléchissiez pour savoir comment. –