Было задано много похожих вопросов, но я испытываю столько боли, что могу задать вопрос сам.
В любом случае, у меня есть файлы в jar file
/ввода, и мне нужно прочитать список имен файлов в этой папке (а затем прочитать сами файлы).
Попытка # 1:
String path Main.class.getProtectionDomain().getCodeSource().getLocation().getPath();
// "/Applications/company/extensions/components/Box/Box/Box.jar"
String decoded = URLDecoder.decode(path, "UTF-8");
// "/Applications/company/extensions/components/Box/Box/Box.jar"
File[] files = (new File(decoded + "/input")).listFiles();
// files = null (bad)
Попытка # 2:
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
URL url = classLoader.getResource("input");
// url.file: "file:/Applications/company/extensions/components/Box/Box/Box.jar!/input"
// url.path: (ditto)
// url.protocol: "jar"
// url.host: ""
// url.query: null
// url.port: -1
java.net.URI uri = new java.net.URI(url.getProtocol(), url.getAuthority(), url.getPort(), url.getPath(), url.getQuery(), url.getRef());
// URISyntaxException --> "Relative path in absolute URI" (bad)
Другие промежуточные попытки, которые привели к тому же результату.Я просто не могу прочитать папку в этой банке ...
Кто-нибудь знает, как это исправить?