Java 编译 class 并运行文件的 main 方法
验证 jvm 参数对 Jar 包中参数值的影响。
Java 文件
Log4jCoreTest.java 文件:
import org.apache.logging.log4j.core.util.Constants;
public class Log4jCoreTest {
public static void main(String[] args) {
boolean value = Constants.FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS;
System.out.println("value is:"+value);
}
}
依赖 Jar
放入 lib 文件夹下:
$ ls
lib Log4jCoreTest.class Log4jCoreTest.java
$ ls lib/
log4j-api-2.15.1.jar log4j-core-2.15.1.jar
编译 Java 文件
javac -encoding UTF-8 -classpath lib/log4j-core-2.13.3.jar Log4jCoreTest.java
运行 Java 文件
java -classpath .:./lib/* Log4jCoreTest
运行结果
如果是 2.13.3 版本:
$ java -classpath .:./lib/* Log4jCoreTest
value is:false
$ java -classpath .:./lib/* -Dlog4j2.formatMsgNoLookups=true Log4jCoreTest
value is:true
如果是 2.15.1 版本:
$ java -classpath .:./lib/* Log4jCoreTest
value is:true
相关文章