我正在使用jsch channelexec来调用.sh文件。 .sh文件的内容是,
#!/bin/bash
java -jar /xxx/yyy.war
在我的日志文件中,我提到路径为
./日志/ xxx.log
当我在intellij中运行ap时,我可以看到日志文件与项目位于同一文件夹中。 当我使用java -jar / xxx / yyy / war从终端运行应用程序时,日志文件与jar文件位于同一位置。
但是当我尝试在java中使用jsch调用.sh文件时,应用程序开始运行,但日志文件不会出现在任何地方。不确定是创建它们还是创建它们的位置。在java中使用jsch执行.sh文件,springboot,gradle时,如何使它出现在与.sh文件相同的位置?
我正在使用ubuntu,log4j2,intellij,java和jsch。
答案 0 :(得分:0)
您的日志文件可能位于用户的主目录下。运行一个新的jsck并输入pwd
- 它们可能就在那里。
确实使用日志文件但是您应该完全指定路径。通过固定位置,例如/opt/app/logs/xxx.log
,或通过固定位置的符号链接,或通过您知道的系统环境变量,将始终设置,例如$LOGS_HOME/xxx.log
依赖./
是一个非常糟糕的主意,因为它完全取决于执行环境。