2015-04-15 2 views
1

Я хава-банка с классом my.package.Foo внутри, содержащий основной метод.Запуск приложения Java из партии с флагами

Более того, у меня есть Log4j, сконфигурированный как система ведения журнала.

Я хочу распечатать полную трассировку стека во время исключения, но я прочитал эту тему: log4j not printing the stacktrace for exceptions и я думаю, что мне нужно использовать флаг -XX:-OmitStackTraceInFastThrow.

Так я пытаюсь вызвать мое приложение с командной строки следующим образом:

java -XX:-OmitStackTraceInFastThrow -cp %JAR_LOCATION:% my.package.Foo

Однако я все еще не хватает StackTrace, я получаю только короткое сообщение об исключении.

Вот мой log4j конфигурации:

log4j.rootLogger=INFO, CONSOLE, FILE 
log4j.appender.FILE=org.apache.log4j.FileAppender 
log4j.appender.FILE.File=log.txt 
log4j.appender.FILE.ImmediateFlush=true 
log4j.appender.FILE.Threshold=debug 
log4j.appender.FILE.Append=false 
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout 
log4j.appender.FILE.layout.conversionPattern=%d{HH:mm:ss.SSS} %-4p %c{2}.%m%n 
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 
log4j.appender.CONSOLE.layout.ConversionPattern=%d{HH:mm:ss.SSS} %-4p %c{2}.%m%n 

Что я не хватает?

ответ

0

Попробуйте так:

set JAR_LOCATION=c:\any folder with spaces\jar 
java -XX:-OmitStackTraceInFastThrow -cp "%JAR_LOCATION:~%" my.package.Foo 

Вы должны удалить: от% JAR_LOCATION:%, или использовать% JAR_LOCATION: ~% де-цитата, и процитировать его непосредственно в команде JAVA, потому что путь, вероятно, содержит пробелы.

Смежные вопросы