英语: 在 java 中是否可以知道执行 jar 时指定的输出文件(不解析参数)?例如使用此命令:
java -jar application.jar 1> output.log 2> error.err
Java 可以知道默认输出在 output.log 中,错误在 error.err 中?
法语: Est-il possible en java de connaitre les fichiers de sorties spécifiés lors de l'écécution d'un jar (sans parser les arguments)?
例举 dans le cas de l'éexecution de cette commande :
java -jar application.jar 1> output.log 2> error.err
最佳答案
您将输出重定向到文件的方式是在操作系统级别完成的,而不是在 Java 级别完成的,因此您不可能采用这种方式。
[替代方式]
唯一可行的方法是将文件名作为 java arg 显式发送到程序并手动更改系统输出流。
运行命令
java -jar application.jar output.log error.err
主类
public static void main(String[] args){
// file names will be available as args[1] and args2[]
String outputFileName = args[1];
String errorOutputFileName = args[2];
System.setOut(new PrintStream(new BufferedOutputStream(new FileOutputStream(args[1]))));
System.setErr(new PrintStream(new BufferedOutputStream(new FileOutputStream(args[2]))));
// ...
}
关于java - 在java中是否有可能知道执行jar时指定的输出文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41612089/