2013-01-07 20 views
6

Sto avviando un'applet tramite JNLP e Java Web Start. Il mio problema è che quando la pagina viene caricata, due JVM verranno avviate con due popup della console Java e due "Vuoi eseguire questa applicazione?" popup. Oltre a ciò, l'applet finisce il caricamento e anche le mie librerie native sono caricate correttamente. Non sono sicuro di cosa stia causando il doppio lancio.Le applet lanciate tramite Java Web Start (JNLP) si avviano due volte

MODIFICA: Inoltre, la prima JVM caricata si chiude automaticamente dopo circa 30-45 secondi.

html

<script> 
var attributes = { code:"com.osgi.swpc.applet.TrackerApplet.class", width:770, height:825}; 
var parameters = {jnlp_href: "tracker-applet.jnlp"}; 
deployJava.runApplet(attributes, parameters, "1.6"); 
</script> 

jnlp

<?xml version="1.0" encoding="UTF-8"?> 
<jnlp spec="1.0+" href=""> 
    <information> 
     <title>Tracker</title> 
     <vendor>My Vendor</vendor> 
    </information> 
    <resources os="Windows"> 
     <!-- Application Resources --> 
     <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se" /> 
     <jar href="tracker_applet.jar" main="true" /> 
     <nativelib href="applets/jacob.jar"/> 
     <nativelib href="applets/com4j.jar"/> 
    </resources> 
    <applet-desc 
     name="Tracker Applet" 
     main-class="com.osgi.swpc.applet.TrackerApplet" 
     width="770" 
     height="825"> 
    </applet-desc> 
    <update check="background"/> 
</jnlp> 
+0

È il mancante "nel attribuisce la var ... un errore di battitura o –

+0

Sì, è stato un errore di battitura che ho curato la questione di rendere chiaro –

+0

@JustinSkiles:.? Avviene questo su tutti i browser – haylem

risposta

0

Emm ... interessante domanda

io non sono abbastanza sicuro perché non ci sarebbe bene avere maggiori dettagli .. Ma alla mia prima vista posso notare il tuo punto Main duplicato di classe:

... in JS

var attributes = { code:"com.osgi.swpc.applet.TrackerApplet.class", width:770, height:825}; 

e poi in JNLP

main-class="com.osgi.swpc.applet.TrackerApplet" 

Quindi, per favore cercate di avere un solo main class attribute. Preferibilmente lasciatelo in JNLP e prova a lanciare nuovamente;


Se si dispone di alcuni dettagli aggiuntivi domanda Il commento si prega di

relazione se questo ha aiutato

0

Io non sono davvero sicuro di quello che sta causando il doppio di lancio.

Dipende l'implementazione di Java che si sta utilizzando, ma in versione recente del Oracle JRE (usato per essere Sun JRE), un'applicazione WebStart sarebbe:

  • cache file JNLP
  • leggere il file JNLP per trovare l'elenco delle risorse è necessario scaricare (questi nostri normalmente i vostri vasetti)
  • costruire un comando per lanciare una normale applicazione Java utilizzando i JAR recentemente scaricato
  • lancio Java applicazione

(Nota Non sto cercando di dare una descrizione completa di ciò che fa Java Web Start, ma cerco solo di fornire una certa comprensione del processo.)

In questo modo, per la prima volta dispone di un javaws eseguibile, che funziona praticamente tanto quanto è necessario per scaricare i JAR, seguito da un eseguibile java, che eseguirà il programma vero e proprio.

0

Nel caso in cui ciò avvenga con MSIE, è sufficiente aggiungere un suggerimento per disabilitare "Filtro Smart Screen", specialmente in situazioni in cui non è presente un accesso lento/Internet.

La posizione in cui l'opzione dipende dalla versione MSIE, penso che in MSIE 7 sia direttamente nel menu Extra, mentre in 9 è nelle impostazioni di sicurezza nelle opzioni Internet. ?.

Problemi correlati