2

因此,在我将项目导出到可运行的 jar 后,我会收到此消息。我不知道为什么会这样,因为当我在 Eclipse 中选择“运行”时应用程序运行完美。我试过提取和打包可靠的库,但没有雪茄。

有谁知道该怎么做?

    Exception in thread "main" java.lang.NoClassDefFoundError: com/mysql/jdbc/jdbc2/optional/MysqlDataSource
    at jp.kddi.geonames.GeoNames.getConnectionWithDataSource(GeoNames.java:55)
    at jp.kddi.geonames.GeoNames.setFromGN(GeoNames.java:155)
    at jp.kddi.twittercrawler.Attributes.setCoordinatesGeonames(Attributes.java:297)
    at jp.kddi.twittercrawler.Attributes.setCoordinatesJSON(Attributes.java:280)
    at jp.kddi.twittercrawler.Attributes.SetAll(Attributes.java:42)
    at jp.kddi.twittercrawler.TweetList.makeList(TweetList.java:25)
    at jp.kddi.twittercrawler.TweetCloud.main(TweetCloud.java:45)
Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.jdbc2.optional.MysqlDataSource
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    ... 7 more
4

6 回答 6

4

看起来您的 MySql 驱动程序尚未导出。要解决此问题,请转到Project Properties(右键单击Project)并选择Properties然后选择Java Build Path然后Order and Export。确保已导出 MySql 库。

于 2011-03-24T07:59:08.927 回答
0

Use Export -> Java -> Runnable JAR File instead Export -> Java -> JAR File on your project (right mouse click).

于 2013-11-16T09:38:47.683 回答
0

您的可运行 jar 中是否有所需的 MySql jar?

由于它在 Eclipse 中编译和运行,因此构建路径可能没问题..

我认为您还需要通过 Eclipse 首选项 deploymentAssembly 选项指定这些 jar。检查这一点的一种方法是导出到war文件并检查所需的jar是否在其中

于 2011-03-24T15:25:37.830 回答
0

将jar文件放在下面/tomcat_dir/lib,它对我有用。

于 2014-05-14T11:13:00.300 回答
0

请在工作区的项目类路径中添加 mysql jar。以下是需要的罐子,请使用合适的罐子。

class com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource
mysql-connector-java-3.1.12-bin.jar
mysql-connector-java-3.1.12.jar
mysql-connector-java-5.0.7.jar
mysql-connector-java-3.1.14.jar
mysql-connector-java-5.1.5.jar
mysql-connector-java-5.0.4.jar
mysql-connector-java-5.0.5.jar
mysql-connector-java-5.1.4.jar
mysql-connector-java-5.1.3.jar
mysql-connector-java-3.1.11.jar
mysql-connector-java-3.1.13.jar
mysql-connector-java-5.1.1.jar
mysql-connector-java-5.0.2.jar
mysql-connector-java-5.0.8.jar
mysql-connector-java-5.0.3.jar
mysql-connector-java-5.1.2.jar
wildcat-core-2.0.1-embedded.jar
class com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource [1216 bytes, jvm >= 1.2 ] 

mysql-connector-java-3.0.16-ga-bin.jar
class com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource [1317 bytes, jvm >= 1.2 ] 

mysql-connector-java-5.1.6.jar
class com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource [1216 bytes, jvm >= 1.2 ] 

mysql-connector-java-3.0.10-stable-bin.jar
mysql-connector-java-3.0.10.jar
mysql-connector-java-3.0.8-stable-bin.jar
mysql-connector-java-3.0.8.jar

class com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource [735 bytes, jvm >= 1.1 ] 

mysql-connector-java-2.0.14-bin.jar
mysql-connector-java-2.0.14.jar
于 2011-03-24T07:56:00.440 回答
0

那么你有一个java.lang.ClassNotFoundException. 这意味着应用程序运行时中缺少一个类。您应该检查是否已将所有库添加到构建路径。

要检查它,只需右键单击您的Project -> Properties -> Java build path -> Libraries,添加您的库或创建一个包含您的类并为您的库启用顺序导出。

显示错误是因为它需要mysql数据源。你可能没有提供一个。检查mysql file/jar路径。

于 2011-03-24T07:58:02.623 回答