0

我的旧笔记本电脑出现故障,因此我将一个 java 程序转移到了一台新计算机上,但执行该程序时遇到了困难。我正在使用 Eclipse,为了消除“缺少主类”错误,将目标目录添加到构建路径中。现在,我得到了错误

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger
    at source.Application.<clinit>(Application.java:447)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
    at java.net.URLClassLoader$1.run(Unknown Source)
...

类路径文件包括该行

classpathentry kind="lib" path=".../log4j/log4j-1.2.17/apache-log4j-1.2.17/log4j-1.2.17.jar" sourcepath=".../log4j/log4j-1.2.17/apache-log4j-1.2.17/log4j-1.2.17-sources.jar">

所以,我不确定接下来要尝试什么。

在 java 构建路径/库选项卡中,条目是:

外部jar:C:\Users\John\Documents\java\log4j\log4j-1.2.17\apache-log4j-1.2.17\log4j-1.2.17.jar 源附件:C:\Users\John\Documents\java \log4j\log4j-1.2.17\apache-log4j-1.2.17\log4j-1.2.17-sources.jar javadoc 位置:C:\Users\John\Documents\java\log4j\log4j-1.2.17\apache- log4j-1.2.17\log4j-1.2.17-javadoc.jar

主类有一个类成员

private static final Logger LOGGER = Logger.getLogger(Application.class);

主要功能有线条

PropertyConfigurator.configure("log4j.properties"); LOGGER.error(e);

4

2 回答 2

2

类路径条目有三个点。试试两个点

于 2013-10-02T02:06:49.960 回答
0

首先,我在不同的驱动器上创建了一个新的 eclipse 工作区,并将 java 源文件目录复制到新的工作区和必要的库中。在新工作区中执行的程序。

由于之前的工作空间已从转移的 svn 存储库中检出,因此我转到之前的 eclipse 工作空间目录并删除了 .metadata 目录,并使用之前的工作空间重新启动了 eclipse。Eclipse 重建了 .metadata 目录,并允许之前的工作空间运行。

因此,看起来错误是一个损坏的 Eclipse 工作区,在计算机之间传输 svn 存储库后变得明显。

于 2013-10-06T13:44:01.203 回答