使用标志从批处理运行java应用程序

使用标志从批处理运行java应用程序,java,batch-file,log4j,Java,Batch File,Log4j,我有一个jar,里面有类my.package.Foo,包含main方法 此外,我还将Log4j配置为日志系统 我想在捕获异常时打印完整堆栈跟踪,但我阅读了以下主题: 我想我需要使用一个-XX:-OmitStackTraceInFastThrow标志 因此,我尝试使用以下命令行调用我的应用程序: set JAR_LOCATION=c:\any folder with spaces\jar java -XX:-OmitStackTraceInFastThrow -cp "%JAR_LOCATION:

我有一个jar,里面有类my.package.Foo,包含main方法

此外,我还将Log4j配置为日志系统

我想在捕获异常时打印完整堆栈跟踪,但我阅读了以下主题: 我想我需要使用一个-XX:-OmitStackTraceInFastThrow标志

因此,我尝试使用以下命令行调用我的应用程序:

set JAR_LOCATION=c:\any folder with spaces\jar
java -XX:-OmitStackTraceInFastThrow -cp "%JAR_LOCATION:~%" my.package.Foo
java-XX:-OmitStackTraceInFastThrow-cp%JAR\u位置:%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
我错过了什么?

试着这样做:

set JAR_LOCATION=c:\any folder with spaces\jar
java -XX:-OmitStackTraceInFastThrow -cp "%JAR_LOCATION:~%" my.package.Foo
您必须从%JAR\u LOCATION:%中删除:或使用%JAR\u LOCATION:~%将其反引号,并在JAVA命令中直接引用,因为路径可能包含空格