2010-08-13 6 views
1

Comment puis-je charger un fichier JAR à partir d'une URL en Java tout en rendant la requête pour le fichier semble légitime en ajoutant les en-têtes HTTP nécessaires dans la requête. La seule façon dont je sais comment gérer le fichier JAR chargé pour le moment est d'utiliser ClassLoader.Chargement d'un fichier JAR à partir d'une URL

Je pense que j'ai cloué cette question assez bien (Ou alors, il semble que dans ma tête!) Mais si quelqu'un a besoin de moi pour fournir plus d'informations avant de pouvoir m'aider, assurez-vous de me poser.

+0

'faire la demande ... semblent legit' , cela semble impliquer que vous essayez d'accéder à quelque chose auquel vous n'auriez normalement pas accès. Pouvez-vous expliquer plus ce que vous voulez accomplir? Voulez-vous charger/instancier les classes, ou simplement avoir le fichier disponible en mémoire? – mdma

+0

Non, vous avez "normalement" un accès complet via votre navigateur. Je veux juste émuler un navigateur (en fournissant des en-têtes HTTP.) Lors du chargement d'un fichier JAR via Java. Aussi, oui je veux pouvoir charger les classes dans le fichier JAR. –

Répondre

0

Vous pouvez être en mesure de passer en-têtes HTTP spécifiques en passant une commande URLStreamHandlerFactory dans un URLClassLoader constructor.

Notez que ce qui est légèrement différent de la création du URLClassLoader en utilisant newInstance car il n'utilise pas checkPackageAccess du SecurityManager (donc vous pourriez avoir à faire vous-même).

Alternativement, peut-être jcloader pourrait être d'intérêt (mais je ne l'ai pas essayé): il pourrait être plus facile de faire une requête HTTP plus traditionnelle (sans utiliser URLStreamHandlerFactory), potentiellement avec les en-têtes HTTP que vous voulez, puis charger le résultat en utilisant un de ses chargeurs de classe (comme InputStream ou quelque chose de similaire).

(Il y a bien sûr d'autres implications de sécurité pour charger un fichier jar à partir d'une source distante, que vous devrez peut-être vérifier que vous faites confiance à l'intégrité de ce fichier.)

Questions connexes