我正在尝试从我的res文件夹获取资源。它在ide中工作(我使用intellij、jdk 8),但当我导出它(使用shadowjar)时,它会说文件不存在,但它在jar中。
我的代码:
static String getTranslate(String lang, String object) throws IOException
{
String defaultFile = Objects.requireNonNull(Thread.currentThread().getContextClassLoader().getResource(lang + ".json")).getFile(); //ERROR
return JsonParser.parseReader(new FileReader(defaultFile)).getAsJsonObject().get(object).getAsString();
}
例外情况:
java.io.FileNotFoundException: file:/media/vaclav/Data/IdeaProjects/ClearTemp/build/libs/ClearTemp-1.0-SNAPSHOT-all.jar!/en.json (Adresář nebo soubor neexistuje)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at java.io.FileReader.<init>(FileReader.java:58)
at me.engo.cleartemp.assets.Tools.getTranslate(Tools.java:351)
at me.engo.cleartemp.assets.API.clearTemp(API.java:21)
at me.engo.cleartemp.Main.main(Main.java:14)
我的身材。格雷德尔:
plugins
{
id 'java'
id "com.github.johnrengelman.shadow" version "6.0.0"
}
group 'me.engo'
version '1.0-SNAPSHOT'
repositories
{
mavenCentral()
}
dependencies
{
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
implementation group: 'commons-io', name: 'commons-io', version: '2.8.0'
implementation 'com.google.code.gson:gson:2.8.7'
}
test
{
useJUnitPlatform()
}
jar
{
manifest
{
attributes 'Main-Class': 'me.engo.cleartemp.Main'
}
}
我的res文件夹
暂无答案!
目前还没有任何答案,快来回答吧!