出于某种奇怪的原因,我有一行代码陷入了无限循环。这是行:
this.logger = LogManager.getLogger(getClass().getName());
一点上下文可能会有所帮助:
我有一台存储所有代码和 java.class
文件的机器。我通过 Eclipse访问这台机器sshfs
并直接处理文件。.java
如果我登录远程机器并执行我的类,代码运行:
$ ssh remote-machine
$ cd /path/to/eclipse-project
$ export CLASSPATH="..." # A bunch of required libraries, including
# log4j-api-2.0-beta7.jar and log4j-core-2.0-beta7.jar
$ java path.to.MyClass
Welcome, please do stuff
>>>
如果我使用sshfs
安装在我机器上的文件系统:
$ cd /mount-point/to/remote-machine
$ cd path/to/eclipse-project
$ export CLASSPATH="..."
$ java path.to.MyClass
<nothing happens>
我确实通过 Eclipse 调试,确定这LogManager#getLogger
是罪魁祸首。事实上,再深入一点,我看到有一个循环,它从 开始并且只在, inindex=2
时终止。class==null
ClassLoaderContextSelector.java:86