问题描述:我有两个.jar程序,当它们分别运行时,它们都可以正确地写入日志文件。但是,当我运行一个程序并在该程序内部运行时,我使用命令行来运行第二个程序。第二个程序将不记录日志(它甚至不创建日志文件和目录)。然后,如果我使用bash脚本运行第一个程序,则两个程序都不会记录日志。
我想知道为什么会发生这种情况,以及在bash启动时如何使它们都记录日志。如果需要,请询问更多详细信息。提前谢谢你的帮助!
顺便说一句,如果您还有其他有关编码样式的建议,请这样做,因为我是初学者,并且喜欢学习更多。
系统环境:
Linux version 4.9.59-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611) ) #1047 SMP Sun Oct 29 12:19:23 GMT 2017
我用来启动程序的bash脚本1:
cd {path_to_the_jar}
java -jar PROGRAM_PARENT.jar &
exit 0
我在程序1中用于启动程序2的代码段:
public static void startProgram(int index){
//store the command line to start a new program.
List<String> commandList = new ArrayList();
commandList.add("java");
commandList.add("-jar");
commandList.add(CHILD_PROGRAM_NAME[index]); //the name of the child program
编辑:我想我已经解决了我的问题。这完全是因为我的日志文件的路径(以及我的粗心大意)。它包含${sys:user.home}
所以当您用不同的用户执行jar文件时,它将存储到不同的文件夹中。不幸的是,当我分别执行它们时,我使用的是普通用户,但是当我一起运行它们时,我使用的是root用户。因此,我无法在该普通用户的文件夹中找到该日志。我想我应该关闭它,但是如果有人知道如何关闭它,我不确定该怎么做,请这样做或建议我。
紫衣仙女