目前我正在用 Java 构建一个小型个人项目,这是一个简单的文件服务器。我已经使用
ResourceBundle
实现了基本的国际化。我正在使用 .properties
文件来存储不同语言的消息。
到目前为止,我一直在使用 Vscode 内置的 java 编译过程,该过程正在将
.properties
文件复制到输出中的相应目录中。但是现在我想为那个项目写一个构建脚本。
我的命令是这样的:
javac -d ./bin -cp ./src ./src/**/*.java
.
然而,此命令不考虑
.properties
文件。我在网上搜索 javac
是否有能力以某种方式处理/包含这些文件到输出中,但没有找到答案。我知道我可以使用 Maven 或 Ant,但我想在不使用其他工具的情况下制作这个项目。
回答我自己的问题,但也许有一天有人会发现这很有用。简而言之,
javac
总是编译 .java
文件生成 .class
文件。它无法处理其他文件(来源:
使用 javac 编译时如何设置输出文件).
长话短说,如果你想在你的输出中包含资源、图像、文本文件,任何不是
.java
文件的东西,并且不想使用构建工具,你必须手动复制它或使用cp
命令在你的构建脚本中。
这就是 java .jar 文件存在的目的。你想要create a .jar file并包含你的属性文件,像这样:
jar cvfm myjarname.jar MANIFEST.MF src/*.class my.properties