在否决我的问题并说这可能是另一个问题的重复之前,我想弄清楚我正在寻找5个小时的解决方案。我已经阅读了所有与ClassNotFoundException相关的stackoverflow问题:com.mysql.cj.jdbc.Driver,但都没有解决我的问题。据我所知,这只是意味着我缺少mysql connector / j库,我甚至对它进行了三重检查,库已包含在项目中,一切都很好。我一直在网上寻找解决方案,有人建议修改“ C:\ xampp \ mysql \ bin \ my.ini文件”,以禁用/注释“跳过网络”和“跳过联合”并启用/取消注释绑定-address =“ 127.0.0.1”。在我的文件中,默认情况下禁用/注释了“跳过联合”和“跳过网络”,因此我只需要启用/取消注释bind-address =“ 127.0.0.1”,但仍然无法正常工作,我怀疑它是xampp有什么用,但是可能是什么呢?
错误的堆栈跟踪
java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.game.server.model.dao.MySQL.JDBCUtil.<clinit>(Unknown Source)
at com.game.server.launch.LaunchServer.main(Unknown Source)
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.game.server.launch.LaunchServer.main(Unknown Source)
Caused by: java.lang.RuntimeException: Unable to load mysql driver.
at com.game.server.model.dao.MySQL.JDBCUtil.<clinit>(Unknown Source)
... 1 more
.classpath项目的文件(REPO_VAR是指向项目的/ lib /目录的eclipse变量)
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry exported="true" kind="var" path="REPO_VAR/junit.jar"/>
<classpathentry exported="true" kind="var" path="REPO_VAR/log4j-1.2.17.jar"/>
<classpathentry kind="src" path="test"/>
<classpathentry combineaccessrules="false" kind="src" path="/server-core"/>
<classpathentry kind="var" path="REPO_VAR/mysql-connector-java-8.0.15.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
该项目是通过ant构建的,因此这是build.xml的编译部分
<target name="build" depends="compile">
<jar basedir="${classes.dir}" destfile="${dist.dir}/${project.name}.jar">
<manifest>
<attribute name="Class-Path" value="log4j-1.2.17.jar server-core.jar" />
<attribute name="Main-Class" value="com.game.server.launch.LaunchServer"/>
</manifest>
</jar>
</target>
更有趣的是,通过右键单击项目>运行方式> Java程序,该项目可以在Eclipse上很好地运行,所以我对此很困惑。