Avatar billede william_munny Nybegynder
16. august 2004 - 12:04 Der er 31 kommentarer og
1 løsning

Java web start getResources

Kære eksperter,
Hjælp jeg har problemer med Java Web start, efter jeg har implementeret
getClass().getClassLoader().getResourceAsStream("config.properties");
Som før var hardcoded med et sti navn, kan jeg ikke loade min applikation op med java web start. Det skal siges at jeg fint kan køre den når jeg bare klikker på jar filen.
Hvad er der galt? jeg får en NullPointerException og en ZipException
Avatar billede arne_v Ekspert
16. august 2004 - 12:19 #1
Ligger config.properties i din jar fil ?
Avatar billede william_munny Nybegynder
16. august 2004 - 12:29 #2
Ja det gør den
Avatar billede william_munny Nybegynder
16. august 2004 - 12:33 #3
Sådan ser stack trace ud
java.lang.NullPointerException
    at java.io.Reader.<init>(Reader.java:61)
    at java.io.InputStreamReader.<init>(InputStreamReader.java:80)
    at java.util.Properties.load(Properties.java:189)
    at script.command.ConfigHandler.loadConfig(Unknown Source)
    at script.command.Control.<init>(Unknown Source)
    at script.gui.ScriptGVForm.<init>(Unknown Source)
    at script.gui.ScriptGVForm.main(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at com.sun.javaws.Launcher.executeApplication(Unknown Source)
    at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
    at com.sun.javaws.Launcher.continueLaunch(Unknown Source)
    at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
    at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
    at com.sun.javaws.Launcher.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:536)
Avatar billede arne_v Ekspert
16. august 2004 - 12:47 #4
Ligger den i rode af din jar ?

Altså uden noget dir ?
Avatar billede william_munny Nybegynder
16. august 2004 - 12:49 #5
Jeps den ligger i roden. Kan det have noget at gøre med pakkerne ?
Avatar billede arne_v Ekspert
16. august 2004 - 12:50 #6
Tror jeg ikke.

For du har angivet den uden pakke. Og ligger den i roden er det også uden pakke.
Avatar billede william_munny Nybegynder
16. august 2004 - 12:51 #7
Også selvom man kalder fra en pakke to niveauer nede ?
Avatar billede william_munny Nybegynder
16. august 2004 - 12:52 #8
Men hvorfor kan jeg klikke på jar filen på det ene drev og det virker men ikke på det andet ?
Avatar billede arne_v Ekspert
16. august 2004 - 12:54 #9
Jeg formoder at der er fordi den i det ene tilfælde finder config filen på disk !
Avatar billede william_munny Nybegynder
16. august 2004 - 12:55 #10
så det er rent held at det har virket ?
Avatar billede arne_v Ekspert
16. august 2004 - 12:58 #11
Måske.

Du kan jo verificere ved at rename on disk versionen og se om det så holder op med at
virke.
Avatar billede william_munny Nybegynder
16. august 2004 - 13:09 #12
Hvis jeg laver en System.out på de URL´s den fejler på når jeg starter op via Web start får jeg følgende:
jar:file:/H:/Research/Automation/Data%20Evaluation%20Applications/ScriptGV/ScriptGV/lib/ScriptGV.jar!/config.properties
jar:file:/H:/Research/Automation/Data%20Evaluation%20Applications/ScriptGV/ScriptGV/lib/ScriptGV.jar!/Template.xml

Hvilket jeg læser som at den finder den i jar filen ?
Avatar billede william_munny Nybegynder
16. august 2004 - 13:10 #13
Altså nå jeg kører den udenom java web start
Avatar billede arne_v Ekspert
16. august 2004 - 13:11 #14
Det ser rigtigt ud.

Hvad giver samme udskrivning ved brug af web start ?
Avatar billede william_munny Nybegynder
16. august 2004 - 13:16 #15
null :-(
Avatar billede arne_v Ekspert
16. august 2004 - 13:19 #16
Hvad med:

getClass().getClassLoader().getSystemResourceAsStream("config.properties");

?
Avatar billede william_munny Nybegynder
16. august 2004 - 13:24 #17
Stadig Null med

System.out.println(this.getClass().getClassLoader().getResource("config.properties"));
ClassLoader cl = this.getClass().getClassLoader();
properties.load(cl.getSystemResourceAsStream("config.properties"));
Avatar billede arne_v Ekspert
16. august 2004 - 13:33 #18
Mystisk.
Avatar billede william_munny Nybegynder
16. august 2004 - 13:59 #19
Har lige fundet dette:
http://forum.java.sun.com/thread.jsp?forum=38&thread=71584

Og

System.out.println(getClass().getResource("/config.properties"));

giver

jar:file:/C:/Documents and Settings/crm/.javaws/cache/http/Dmaxynetdk/P80/DM!DK/DMbioIT/DMapps/DMlib/RMScriptGV.jar!/config.properties

men
properties.load(getClass().getResourceAsStream("/config.properties"));

giver stadig

java.lang.NullPointerException
    at java.io.Reader.<init>(Reader.java:61)
    at java.io.InputStreamReader.<init>(InputStreamReader.java:80)
    at java.util.Properties.load(Properties.java:189)
    at script.command.ConfigHandler.loadConfig(Unknown Source)
    at script.command.Control.<init>(Unknown Source)
    at script.gui.ScriptGVForm.<init>(Unknown Source)
    at script.gui.ScriptGVForm.main(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at com.sun.javaws.Launcher.executeApplication(Unknown Source)
    at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
    at com.sun.javaws.Launcher.continueLaunch(Unknown Source)
    at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
    at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
    at com.sun.javaws.Launcher.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:536)
Avatar billede arne_v Ekspert
16. august 2004 - 14:07 #20
Stadig mystisk.

Hvad med:

properties.load(getClass().getResource("/config.properties").openStream());

?
Avatar billede william_munny Nybegynder
16. august 2004 - 14:13 #21
så få jeg en ny fejl:
Logging to file: c:\JAVAWEBSTART.LOG
jar:file:/C:/Documents and Settings/crm/.javaws/cache/http/Dmaxynetdk/P80/DM!DK/DMbioIT/DMapps/DMlib/RMScriptGV.jar!/config.properties
java.util.zip.ZipException: The system cannot find the file specified
    at java.util.zip.ZipFile.open(Native Method)
    at java.util.zip.ZipFile.<init>(ZipFile.java:112)
    at java.util.jar.JarFile.<init>(JarFile.java:117)
    at java.util.jar.JarFile.<init>(JarFile.java:55)
    at sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.java:55)
    at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:40)
    at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:63)
    at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:85)
    at sun.net.www.protocol.jar.JarURLConnection.getInputStream(JarURLConnection.java:105)
    at java.net.URL.openStream(URL.java:960)
    at script.command.ConfigHandler.loadConfig(Unknown Source)
    at script.command.Control.<init>(Unknown Source)
    at script.gui.ScriptGVForm.<init>(Unknown Source)
    at script.gui.ScriptGVForm.main(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at com.sun.javaws.Launcher.executeApplication(Unknown Source)
    at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
    at com.sun.javaws.Launcher.continueLaunch(Unknown Source)
    at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
    at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
    at com.sun.javaws.Launcher.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:536)
Avatar billede arne_v Ekspert
16. august 2004 - 14:35 #22
Er jar filen uploadet binært til web serveren ?
Avatar billede william_munny Nybegynder
16. august 2004 - 14:36 #23
flytter jar filerne med ANT copy da jeg har adgang til intrawebbet
Avatar billede william_munny Nybegynder
16. august 2004 - 14:37 #24
øhhh så det ved jeg ikke
Avatar billede arne_v Ekspert
16. august 2004 - 14:38 #25
Hvis du downloader jar filen med browser - virker jar tvf så på den downloadede
version ?
Avatar billede william_munny Nybegynder
16. august 2004 - 14:42 #26
hmmm det gør de kan det have noget at gøre med at der er et ! i sti navnet ?

H:\Operations\Intraweb\!DK\bioIT\apps\lib <-her ligger mine jars
Avatar billede arne_v Ekspert
16. august 2004 - 14:44 #27
Nej ! betyder bare at det til venstre er en fil mens det til højre
er indhold i jar filen
Avatar billede william_munny Nybegynder
16. august 2004 - 14:46 #28
ja men det til venstre er jo ikke en fil men en folder struktur hvis jeg ligger applikationen ned på c:\test! virker det nemlig heller ikke
Avatar billede william_munny Nybegynder
16. august 2004 - 14:55 #29
Ok nu virker det jeg har lavet en ny folder på webserveren uden udråbstegn (!). og nu kan jeg starte applikationen op via webstart. :-) Smid et svar arne og tak for hjælpen :-)
Avatar billede arne_v Ekspert
16. august 2004 - 14:58 #30
ahhh

jeg havde misset det ! - jeg troede at du tænkte på det i

jar:file:/H:/Research/Automation/Data%20Evaluation%20Applications/ScriptGV/ScriptGV/lib/ScriptGV.jar!/config.properties
Avatar billede arne_v Ekspert
16. august 2004 - 14:59 #31
svar
Avatar billede william_munny Nybegynder
16. august 2004 - 15:03 #32
Lækkert 3 timers arbejde på grund af et udråbs tegn :-/
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester