0
我可以得到日誌寫入一個文件時,我在一個程序中運行中得到log4j的輸出。但是在製作程序的jar文件並使用ProcessBuilder
運行該jar文件後,它確實會生成該文件,但它不會寫入任何內容。任何幫助表示讚賞。如何從一個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();
您是否在jar的清單文件中設置了主類? http://docs.oracle.com/javase/tutorial/deployment/jar/appman.html 您是否嘗試過使用'java.exe'而不是'javaw.exe'? 您是否先在命令行中嘗試過您的命令,然後看看會發生什麼? –
是的。我有主要功能。 (jar)程序實際上是先反編譯文件然後記錄。 jar文件成功反編譯並生成反編譯的文件。但它沒有寫入日誌。 – Junaid
這不是關於主要方法,而是關於主要類。檢查我給你的鏈接。如果你想從命令行運行一個jar文件,你需要在它的manifest文件中設置它的main-class,否則,指定你想要執行它的類的主函數。例如:'Java的罐子JAR文件,name.jar com.yourcompany.yourclass主法論點 - spearated與 - spaces' –