当我在程序中运行时,我可以将日志写入文件。但是在创建程序的 jar 文件并使用 ProcessBuilder 运行该 jar 后,它确实生成了该文件,但没有写入任何内容。如有任何帮助,我们将不胜感激。
这是属性文件
log4j.rootLogger=fatal,CONSOLE,R
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=H://decompilerDirectory//logs/testlog.log
log4j.appender.R.MaxFileSize=60000KB
log4j.appender.R.MaxBackupIndex=15
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d - %c - %p - %m%n
这就是我运行程序的方式
ProcessBuilder pb = new ProcessBuilder("C:\\Program Files\\Java\\jdk1.7.0_13\\bin\\javaw.exe", "-jar", "ta.jar", filePath);
Process p = pb.start();
p.waitFor();
最佳答案
您设置了main-class吗?在 jar 的 list 文件中?
这不是关于 main 方法,而是关于主类。检查我给你的链接。如果你想从命令行运行一个 jar 文件,你需要在它的 list 文件中设置它的主类,否则,指定你想要执行它的主函数的类。
java -jar jar-file-name.jar com.yourcompany.yourclass main-method-arguments-spearated-with-spaces
关于java - 如何从 jar 文件中获取 log4j 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23034315/