У меня есть файл X.json внутри abc.jar в его пути к классам. Существует метод ReadFile в abc.jar, который читает файл какКак читать файл внутри ресурсов jar из ouside jar
URL url = Abc.class.getClassLoader().getResource("X.json");
File file = new File(url.toURI());*
, который читает его хорошо, если я запустить его в контексте флягу в то есть основной метод в некотором файле внутри abc.jar
Но когда readFile вызывается извне abc.jar из какого-либо другого кода, он сбой с java.lang.IllegalArgumentException: URI is not hierarchical
Как получить объект File, вызвав метод readFile извне контекста jar?
Почему вы не опубликовали стек? – isnot2bad
Файл представляет собой путь к файловой системе. Файл в банке не находится в файловой системе. Так что независимо от класса, из которого вы выполняете этот код, это не имеет смысла и не будет работать. Чтобы прочитать файл внутри jar, который находится в пути к классам, используйте 'Class [Loader] .getResourceAsStream()'. –
Кажется, что это так же, как http://stackoverflow.com/questions/10144210/java-jar-file-use-resource-errors-uri-is-not-hierarchical – jCoder