1

出于某种奇怪的原因,我有一行代码陷入了无限循环。这是行:

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==nullClassLoaderContextSelector.java:86

4

0 回答 0