2011-11-24 14 views
7

E 'legale specificare codebase in questo modo:JNLP con codice di codice locale - come aggiornare?

<jnlp spec="6.0+" 
    codebase="file:/c:/MyApp/" 
    href="myapp.jnlp"> 

Quando si importa questo con JWS crea collegamento sul desktop e l'applicazione sta funzionando.

Tuttavia, una cosa è molto diversa dalla base di codice remota. Quando aggiorno quei file mentre l'applicazione è in esecuzione, in pratica smette di funzionare inondata di ClassNotFoundExceptions. Sembra come se JWS non copiasse i vasi o li copiasse immediatamente mentre venivano aggiornati in qualche modo sovrascrivendo quelli usati dal processo in esecuzione.

Come posso farlo funzionare come se i file fossero remoti? Cioè, copia i file nella cache e controlla gli aggiornamenti solo all'avvio.

EDIT: Non ho trovato un modo per farlo e ho deciso di sostituire l'homebrew. Lungo la strada ho trovato diversi bug e ho fatto alcune osservazioni che ho riassunto allo http://squirrel.pl/blog/2011/11/24/java-web-start-bugs-offline-edition/. Inserendolo qui nel caso in cui potrebbe essere di qualche utilità per qualcuno.

+0

Quale problema si sta tentando di risolvere con il codebase locale? –

+0

Questo è oltre il punto, ma: affidamento su aggiornamenti lenti e fragili basati sul Web e sfruttando il nostro sistema esistente per pompare tutti i tipi di file, installazioni, aggiornamenti ecc. Per selezionare i computer. –

+1

"aggiornamenti fragili basati sul Web". Assicurati che, se un file viene aggiornato, ottiene un nuovo URL e aggiorna il file JNLP di conseguenza. –

risposta

-4

Nella nostra applicazione, il codice di base è:

<jnlp codebase="http://xxxx.xxx.xxx/jars"> 

e, il file jar dovrebbe mettere in your_webapp_root_directory/barattoli. Per il test, è possibile inserire un URL nel browser: http://xxxx.xxx.xxx/jars/xxxx.jar, se è possibile scaricare il file xxxx.jar, funziona.

+0

Scusate, ma ho chiesto specificamente riguardo la base di codice locale. Non penso che tu abbia letto la domanda. –

0

Per rendere l'applicazione aggiornabile automaticamente è necessario utilizzare il tag <update>.

<update check="always" policy="always"/> 

E anche se si vuole, l'applicazione può essere eseguita in uso offline <offline-allowed/>.
Anche per fornire tutte le autorizzazioni di sicurezza è necessario aggiungere il tag <security>.
Aggiungere i seguenti tag al file JNLP.

<information> 
     <offline-allowed/> 
    </information> 

    <security> 
     <all-permissions/> 
    </security> 

    <update check="always" policy="always"/> 

    <resources> 
     <jar href="your-signed.jar" main="false" download="eager"/> 
    </resources>