我是被“遗弃”的开源Java应用程序的新维护者。最初,该应用程序仅适用于Windows用户,我尝试建立OSX端口,但遇到问题
有一个包含翻译(属性)文件的文件夹。
首次启动时,该应用会列出资源文件夹中的所有属性文件,并从中列出一个列表。然后,用户可以从该列表中选择应用程序语言。
到目前为止,该应用程序仅受Windows支持,并且由于资源文件夹未 bundle 在Jar中而运行良好。
OSx应用程序将应用程序jar中的所有资源文件夹 bundle 在一起,并且现有代码无法正常工作。我找不到一种方法来扫描位于jar中的资源文件夹。
我想知道是否有人可以帮助我找到解决方法或使我适应另一种方法:
我正在使用Gradle作为构建系统
最佳答案
我终于选择了选项1,执行下面的任务以在配置文件中列出可用的语言。
然后,我的Java代码在执行时只需读取配置文件。
task createLanguageFileList() {
def lTranslationFiles = []
fileTree(dir: "${projectDir}\\src\\main\\resources\\translations", include: '**/*.properties').visit {
FileVisitDetails details -> lTranslationFiles << details.file.name
}
doLast {
lTranslationFiles = lTranslationFiles.collect { it.take(it.lastIndexOf('.'))}
println lTranslationFiles
File lstFile = new File("${projectDir}\\src\\main\\resources\\translations\\ListLanguages.txt")
lstFile.withWriter{ out -> lTranslationFiles.each {out.println it}
}
}
关于java - 动态列出位于JAR中的可用翻译文件的最佳方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52992485/