eclipse 中调试运行结果和打包出来的运行结果不一样

时间:2022-04-03 15:56:24
我在我的工程中引用到一个hadoop-core-2.0.0-mr1-cdh4.0.1.jar包,这个jar包中包含一个log4j.properties文件
当我直接在eclipse中调试运行时,发现这个log4j.properties文件的配置有效。
但是如果把我的文件打成jar包,用hadoop jar my.jar 运行时,发现这个log4j.properties的配置都没效了。
我打jar包时,用eclipse的 runnable jar file->extract required libraires into generate JAR
请问为什么?

我解压打好的jar包检查,看到log4j.properties在jar包的根目录下。

另外,有没有详细讲解eclipse  export的文章?

5 个解决方案

#1


 又没人会。。。
eclipse 中调试运行结果和打包出来的运行结果不一样

#2


不知道你是如何读取log4j.properties文件的,在程序里测试,路径是你项目下的,打成jar包后,就是jar运行环境的路径了。

#3


会不会是跟路径神马的有关

#4


引用 2 楼 fangmingshijie 的回复:
不知道你是如何读取log4j.properties文件的,在程序里测试,路径是你项目下的,打成jar包后,就是jar运行环境的路径了。

我没写代码读取log4j.properties
我引用的jar包中有代码读取它自己的log4j.properties文件,(这个jar包把log4j.properties达到它的jar包中了)
我只是把我引用的jar包的log4j.properties文件改了一下。
然后调试时有效,我再打自己的整个工程的jar包运行,就不行了。

#5


貌似log4j.properties文件打在jar文件里,修改不好实现,你可以打在jar外面,路径前加System.getProperty("user.dir"),就是你运行时路径,要是放在eclipse下,就在eclipse下建个log4j.properties文件,就能读写了。

#1


 又没人会。。。
eclipse 中调试运行结果和打包出来的运行结果不一样

#2


不知道你是如何读取log4j.properties文件的,在程序里测试,路径是你项目下的,打成jar包后,就是jar运行环境的路径了。

#3


会不会是跟路径神马的有关

#4


引用 2 楼 fangmingshijie 的回复:
不知道你是如何读取log4j.properties文件的,在程序里测试,路径是你项目下的,打成jar包后,就是jar运行环境的路径了。

我没写代码读取log4j.properties
我引用的jar包中有代码读取它自己的log4j.properties文件,(这个jar包把log4j.properties达到它的jar包中了)
我只是把我引用的jar包的log4j.properties文件改了一下。
然后调试时有效,我再打自己的整个工程的jar包运行,就不行了。

#5


貌似log4j.properties文件打在jar文件里,修改不好实现,你可以打在jar外面,路径前加System.getProperty("user.dir"),就是你运行时路径,要是放在eclipse下,就在eclipse下建个log4j.properties文件,就能读写了。