2011-11-24 28 views
7

Jest poprawne podanie codebase tak:JNLP z lokalną bazą kodów - jak zaktualizować?

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

Podczas importu to z JWS tworzy skrót na pulpicie, a aplikacja działa.

Jednak jedna rzecz bardzo różni się od zdalnego kodu. Kiedy aktualizuję te pliki, gdy aplikacja jest uruchomiona, zasadniczo przestaje działać pod wodą z ClassNotFoundExceptions. Wygląda na to, że JWS nie skopiował słoików lub natychmiast je skopiował, ponieważ zostały one w jakiś sposób nadpisane, zastępując te używane przez uruchomiony proces.

Jak mogę sprawić, aby działało tak, jakby pliki były zdalne? To znaczy, kopiuj pliki do pamięci podręcznej i sprawdzaj tylko aktualizacje po uruchomieniu.

EDYTOWANIE: Nie znalazłem sposobu, aby to zrobić i zdecydowałem się na zamianę homebrew. Po drodze znalazłem kilka błędów i zrobiłem kilka obserwacji, które podsumowałem na http://squirrel.pl/blog/2011/11/24/java-web-start-bugs-offline-edition/. Umieszczanie go tutaj, na wypadek, gdyby mogło być dla kogoś użyteczne.

+0

Jaki problem próbujesz rozwiązać za pomocą lokalnej bazy kodów? –

+0

To poza tym, ale: poleganie na powolnych i delikatnych aktualizacjach internetowych i wykorzystanie naszego istniejącego systemu do pompowania wszelkiego rodzaju plików, instalacji, aktualizacji itp. W celu wybrania komputerów. –

+1

"delikatne aktualizacje internetowe". Wystarczy upewnić się, że jeśli plik jest aktualizowany, otrzymuje nowy adres URL i odpowiednio aktualizuje plik JNLP. –

Odpowiedz

-4

W naszej aplikacji, kodzie jest:

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

, a plik jar należy umieścić w your_webapp_root_directory/słoików. Aby przetestować, możesz wprowadzić adres URL w przeglądarce: http://xxxx.xxx.xxx/jars/xxxx.jar, jeśli możesz pobrać plik xxxx.jar, to działa.

+0

Przepraszam, ale zapytałem konkretnie o lokalną bazę kodów. Nie sądzę, żebyś w ogóle przeczytał to pytanie. –

0

Aby aplikacja była automatycznie aktualizowana, należy użyć znacznika <update>.

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

a także jeśli chcesz, aplikacja może działać w trybie offline <offline-allowed/>.
Również w celu podania wszystkich uprawnień bezpieczeństwa należy dodać znacznik <security>.
Dodaj następujące znaczniki do swojego pliku 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>