one-jar删除有关应用程序负载的详细警告信息

wal*_*mon 13 java maven-2

我正在使用Maven,使用one-jar插件,但是当我运行一个jar可执行文件时,我遇到了一堵警告墙,这是不可接受的

我看了看一坛子一切可以利用的资源,看看如何保持对运行时喷涌而出吨警告的罐子没有指令,有没有人解决了这个?

JarClassLoader: Warning: META-INF/LICENSE.txt in lib/commons-io-1.4.jar is hidden by lib/commons-collections-3.2.1.jar (with different bytecode)
JarClassLoader: Warning: META-INF/NOTICE.txt in lib/commons-io-1.4.jar is hidden by lib/commons-collections-3.2.1.jar (with different bytecode)
JarClassLoader: Warning: META-INF/LICENSE.txt in lib/commons-lang-2.4.jar is hidden by lib/commons-collections-3.2.1.jar (with different bytecode)
JarClassLoader: Warning: META-INF/NOTICE.txt in lib/commons-lang-2.4.jar is hidden by lib/commons-collections-3.2.1.jar (with different bytecode)
Run Code Online (Sandbox Code Playgroud)

小智 10

我发现如果您创建一个one-jar.properties文件并将其放在运行时类路径的根目录中(即,您的项目.class文件最终的位置),它将被一个jar的Boot类读取.此属性文件中的条目,例如:

one-jar.silent=true
Run Code Online (Sandbox Code Playgroud)

将完全禁止一个jar日志消息.

Boot类查找的其他值是one-jar.infoone-jar.verbose.

默认级别为INFO.正如帕斯卡尔Thivent上面所指出的,你也可以通过用命令行设置系统属性-D中的参数java命令,但是如果你不希望有规定或记住这一点,属性文件的做法的伟大工程.


Pas*_*ent 8

在"详细"模式下运行时似乎会打印这些消息.我没有得到的是,默认情况下似乎没有激活详细模式.

无论如何,你可以尝试在运行one-jar时设置one-jar.verbose系统属性false:

java -Done-jar.verbose=false -jar <one-jar.jar>
Run Code Online (Sandbox Code Playgroud)

  • `java -Done-jar.verbose = false -jar <etc.jar>`技巧对我不起作用. (2认同)

wal*_*mon -1

不修改源码是没有办法做到这一点的