2010-08-12 5 views
2

Je travaille sur un projet en Java qui a une structure de répertoire quelque chose comme ceci:problèmes de dépendance à déployer en utilisant Java Webstart

 MainFolder 
     / |  \ 
Folder1 Folder2 Folder3... 
    | 
Program.jar|Run.sh 

Dans Dossier1 Je fichier jar principal avec le script shell pour exécuter le programme . Dans Folder2 j'ai des fichiers de configuration en XML qui peuvent ensuite être modifiés par le programme et In Folder3 j'ai des fichiers jar dont dépend le programme principal. Maintenant, je veux déployer ce programme en utilisant Java webstart. Ma compréhension actuelle est que le web start nous permet de déployer des programmes en utilisant un ou plusieurs fichiers jar.Mon problème est que j'ai besoin de la structure de répertoire aussi.Peut-on suggérer quelqu'un une solution pour cela.

Répondre

2

Comme mentionné par d'autres, le script shell pose des problèmes. Que fait-il spécifiquement pour «exécuter le programme»?

Pour les fichiers de configuration - 'Dossier 2', webstart fournit le service PersistenceService. J'ai une petite démo. (1)

Dans la mesure où les bocaux dans le «dossier 3» vont. Déplacez-les, ainsi que les Jar dans les dossiers 2 & dans un seul répertoire nommé 'lib'. Le fichier Jar principal et les fichiers de configuration seront requis avec impatience, ce qui est la valeur par défaut pour JWS. Si l'un des autres fichiers JAR (par exemple '3') n'est pas nécessaire immédiatement ou pas du tout, ils doivent être déployés en tant que download = 'paresseux'.

Pour accéder au système de fichiers local - pour lire les entrées fournies par l'utilisateur ou écrire un nouveau fichier créé - une application JWS. normalement doit être signé numériquement et approuvé. Mais JWS fournit également la forme d'accès beaucoup plus limitée à travers l'objet FileContents. Pour plus de détails, voir la démo. du service de fichiers dans la page liée ci-dessous. (1)

1) Demos of the JNLP API, y compris l'objet PersistenceService & FileContents.

0

Je pense que vous devrez apporter des modifications à la structure pour le déploiement de webstart (éventuellement le compresser en jar ou en jeu de jars), le lancement se fera aussi par JNLP, par webstart et non par Run.sh.

En outre, vous devrez signer votre déploiement si vous avez besoin d'autorisations pour écrire sur le disque.

Voir la FAQ pour webstart here

Consultez également le developer guide sur la façon de déployer à l'aide webstart

0

Java WebStart ne fournit aucune aide à faire le filsystem comme vous en avez besoin - il ne fournit que le programme composants pour la mémoire.

Si vous avez besoin de cette structure, vous devez maintenir vous-même (et où?)

Si la seule chose dont vous avez besoin est un script shell pour exécuter, vous pouvez garder le contenu de ce fichier en tant que une ressource à l'intérieur de votre jar, créez un fichier temporaire à chaque exécution, placez le contenu souhaité à l'intérieur et exécutez-le, puis supprimez le fichier temporaire lorsque vous avez terminé. Notez que cela vous amène dans le monde merveilleux de la signature de code, ce qui est plutôt fastidieux.

Questions connexes