英文: 是否有可能在java中知道执行jar时指定的输出文件(不解析参数)?例如,使用此命令:
java -jar application.jar 1> output.log 2> error.err
Java可以知道默认输出在output.log中,错误在error.err?
Français: Est-il possible en java de connaitre les fichiers desortiesspécifiéslorsde l'éxécutiond'unjar(sans parser les arguments)?
Par parmple dans le cas de l'éxecutiondecette commande:
java -jar application.jar 1> output.log 2> error.err
答案 0 :(得分:3)
将输出重定向到文件的方式是在操作系统级别完成,但不是在java级别完成,因此无法按照您的方式进行。
[Alernate way]
如果您将文件名显式地作为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]))));
// ...
}