我想创建 Jitsi 的可运行 jar,它是最受欢迎的 SIP 通信器之一。因此,我将 Jitsi 打包为一个可运行的 jar。当此可运行 jar 被传递适当的 VM 参数时,可以使用它,例如:
-Dfelix.config.properties=file:lib/felix.client.run.properties
-Djava.util.logging.config.file=lib/logging.properties
-Dnet.java.sip.communicator.SC_HOME_DIR_NAME=Jitsi-dev
我的 Main 类使用这些参数调用这个可运行的 jar,如下所示:
public class Main {
public static void main(String[] args) {
try {
Process p = Runtime.getRuntime().exec("java",
"-Dfelix.config.properties=file:lib/felix.client.run.properties",
"-Djava.util.logging.config.file=lib/logging.properties",
"-Dnet.java.sip.communicator.SC_HOME_DIR_NAME=Jitsi-dev,
"-jar", "jitsi.jar");
} catch (IOException e) {
e.printStackTrace();
}
}
}
当然,在我的 jar 中,您还可以在 lib 文件夹中找到这两个属性文件(felix.client.run.properties 和 logging.properties),并且还可以在 jitsi.jar 中找到之前打包的 Jitsi。不幸的是,我收到一个错误,即未加载通过命令行的 config.properties。但是,当我制作一个运行 jitsi.jar 且参数相同的 shell 脚本时,我可以运行 Jitsi。上面的代码有什么问题?