У меня есть проект, где я хочу получить доступ к ресурсу в JAR из другого проекта. Это не находится на моем пути к классу, таким образом, ClassLoder не является опцией. Я попробовал:
new FileInputStream("C:\\mydir\\my.jar!\\myresource.txt");
и полученный FileNotFoundException.
JarInputStream мог бы быть возможностью, но я хочу гибкость входного имени файла, являющегося ресурсом банки, или просто файл в системе (пользователь решает). Существует ли класс, который может сделать это, или я должен создать тот сам?
Попробуйте использовать URLClasslass . Я сделал что-то похожее на это раньше, и, похоже, работает (хотя вам может понадобиться галочка с вашим файлом политики безопасности, если вы находитесь в безопасном JVM).
попробуйте использовать java.net.JarLConnection
URL url = новый URL("jar:file:C:\mydir\my.jar!\myresource.txt");
JarConnection = (JarLConnection)url.openConnection();
. private InputStream twistLid(File jar, String resource) throws IOException {
return new URL("jar:" + jar.toURI() + "!" + resource).openStream();
}
К счастью, высылка с «!» Символ не работает.
Посмотрите здесь: