Lorsque j'essaie d'utiliser le fichier JAR dans le chemin UNC, je trouve que j'ai rencontré un problème. Le constructeur de java.io.file
convertira toujours un chemin de fichier UNC en chemin local.Constructeur Java.io.file pour traiter le chemin du fichier UNC
Par exemple, j'essaie
String dirStr = "file:\\\\dir1\dir2\file.jar!Myclass";
File ff = new File(dirStr);
System.out.println(ff.toString());
Je vais obtenir une sortie comme: file:\dir1\dir2\file.jar!Myclass
. Mais ce que je m'attends à obtenir est file:\\dir1\dir2\file.jar!MyClass
.
J'ai essayé d'ajouter plus de barres obliques dans dirStr
, mais cela ne peut pas fonctionner. Parce que dans le java.io.file
, il appellera méthode pour supprimer les barres obliques dupliquées. J'ai essayé d'utiliser le URI
pour créer le ff
. Mais la sortie sera \dir1\dir2\file.jar!Myclass
, ce qui n'est pas disponible pour utiliser le fichier JAR avec succès. Je pense que la forme de JAR doit commencer par le protocole file:
pour utiliser la chaîne se terminant par !
dans la chaîne ci-dessus \dir1\dir2\file.jar!Myclass
.
est-il un moyen peut new File()
pour obtenir le chemin de File
, à savoir ff
, comme file:\\dir1\dir2\file.jar!MyClass
.
Je pense que le préfixe 'file:' est généralement utilisé pour les chemins locaux. Un chemin UNC n'est pas un chemin local. Essayez sans le préfixe 'file:', c'est-à-dire \\ dir1 \ dir2 \ fichier.jar! MyClass'. Vous pouvez également essayer avec des barres obliques, '//dir1/dir2/file.jar! MyClass' – janos
Pourquoi pensez-vous que vous devez fournir une URL à un constructeur' File'? Vous ne pouvez pas, et vous ne devez pas. Pas clair ce que vous demandez vraiment ici. – EJP
Parce que j'ai besoin d'utiliser le fichier JAR dans le chemin UNC. Lorsque votre java CLASSPATH inclut le chemin UNC distant, vous rencontrerez ce problème. Il va analyser le fichier JAR comme 'dirStr'. –