系统提示:java.lang.ClassNotFoundException: org.jeecgframework.web.system.listener.OnlineListener

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统提示:java.lang.ClassNotFoundException: org.jeecgframework.web.system.listener.OnlineListener相关的知识,希望对你有一定的参考价值。

起tomcat时报的

  查了一下好多解决方法都是说把jar包拷到lib下,去我的tomcat下发现并没有那个工程。继续查发现eclipse并不是真的启动了你本地的tomcat,只是一个虚拟的服务器,eclipse把
  项目部署到了workspace\\.metadata\\.plugins\\org.eclipse.wst.server.core\\tmp0\\wtpwebapps下,把所有的类包拷的这个下面ok了。
  此外,为什么引入了类库还找不到jar包呢。解释为:
  eclipse工程下的library是用来编译里面的src中java文件的
实际发布到tomcat时,仅仅只复制了WEB-INF/lib里面的jar包,所以出现eclipse可以正常编译但tomcat运行是找不到类。
参考技术A 缺少包。看一下你有不有监听的.jar包,或者你的监听类追问

是类,但是我的文件夹里有这个类

追答

这不是没找到嘛,你看看是不是你引用错了

追问

我也纳闷啊,我引用的也没错,我还专门对了一下路径

Java SQLite org.sqlite.JDBC 类路径损坏?

【中文标题】Java SQLite org.sqlite.JDBC 类路径损坏?【英文标题】:Java SQLite org.sqlite.JDBC classpath broken? 【发布时间】:2014-06-08 23:26:33 【问题描述】:

我在使用带有 org.sqlite.JDBC 的 JDBC sqlite 时偶然发现了一个奇怪的错误 我的代码在 Windows 上编译并运行良好。 但是当我尝试将其移至 Ubuntu 时,它开始显示:

Exception in thread "main" java.lang.ClassNotFoundException: org.sqlite.JDBC
        at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:259)
        at mall.SQLiteJDBC.<init>(SQLiteJDBC.java:27)
        at mall.AllegroReader.<init>(AllegroReader.java:33)
        at mall.Mall.main(Mall.java:31)

我正在使用 java -classpath "sqlite-jdbc-3.7.2.jar" -jar Mall.jar"java -classpath "sqlite-jdbc4-3.8.2-SNAPSHOT.jar" -jar Mall.jar 运行它 两个版本都与我的 jar 位于同一目录中,并且我尝试了十几种不同的选项来指定类路径,并且它的行为完全相同。我试过openjdk和oracle jdk。 我尝试在 Ubuntu 上重建它,更改 ant .xmls,更改路径等。

我不知道发生了什么。请帮忙。

这是我的 dist 目录中发生的事情:

work1@workwork:/var/www/mall/dist$ ls
mall.db  Mall.jar  Mall.jar.old  sqlite-jdbc-3.8.4.3-SNAPSHOT.jar

work1@workwork:/var/www/mall/dist$ java -classpath "sqlite-jdbc-3.8.4.3-SNAPSHOT.jar:Mall.jar" Mall
Error: Could not find or load main class Mall

【问题讨论】:

当您使用-jar 时,类路径将被忽略。您必须在 jar 中包含依赖项(或者至少让 jar 清单指向它们),或者使用 -classpath sqlite.jar:Mall.jar the.main.class 运行它 在尝试了十几种组合之后,终于成功了java -classpath "sqlite-jdbc-3.8.4.3-SNAPSHOT.jar:Mall.jar" Mall.main YAY!谢谢! (主类在 Mall.java 中) - 如果是答案,我会将其标记为已解决 :) 该死...我又丢了... :(我在 dist 目录...发出java -classpath "sqlite-jdbc-3.8.4.3-SNAPSHOT.jar:Mall.jar" Mall.main给我Error: Could not find or load main class Mall.main。所有文件都在那里,我的主要课程来自Mall.java -> Mall.jar 【参考方案1】:

当您使用-jar 时,类路径将被忽略。

您必须在 jar 中包含依赖项(或至少让 jar 清单指向它们),或者使用 -classpath sqlite.jar:Mall.jar the.main.class 运行它。

错误:无法找到或加载主类 Mall.main。所有文件都在那里, 我的主要课程来自Mall.java,位于mall 包中 编译为Mall.jar

所以正确的命令行是:

java -classpath "sqlite-jdbc-3.8.4.3-SNAPSHOT.jar:Mall.jar" mall.Mall

OP 发现

要查看 jar 中的类,请使用 jar tf Mall.jar - 从这里我得到了 mall/Mall.class,这意味着我的包含 main 的类是 mall.Mall

它显示了

mall/Mall.class

所以我应该使用 mall.Mall 作为类来运行(而不是拉扯我的头发)

【讨论】:

【参考方案2】:

在尝试使用类路径和诸如此类的东西运行“便携式”jar 包时总共花费了超过 6 个小时,但在尝试了 OneJar 和 jarjar 无济于事(最终以Class file too large!)之后,我决定编写有问题的部分PHP 中的代码。

在我的例子中,它被证明比 Java 更便携。

【讨论】:

以上是关于系统提示:java.lang.ClassNotFoundException: org.jeecgframework.web.system.listener.OnlineListener的主要内容,如果未能解决你的问题,请参考以下文章

如何关闭android系统提示

C盘系统文件提示损坏怎么办?系统文件损坏怎么修复

C盘系统文件提示损坏怎么办?系统文件损坏怎么修复

windows2008重启提示系统修复和系统还原没有命令行

记一次深度系统安装至windows系统盘提示挂载为只读模式问题

macOS如何自定义系统提示声音