我知道这个问题已经被问过/回答了好几次,但我仍然找不到解决这个ClassNotFoundException
错误的方法,因为它可以在我的计算机上运行,但不能在我的 RasPi(我安装了 OpenJDK7)上运行。
我的应用程序使用 JDBC 访问 MySQL 数据库,这是主要问题。正如许多网站( [1]、[2]、[3] )所指出的,不幸的是,这是一个常见问题。
所以,我正在使用mysql-connector-java-5.0.8.jar
作为驱动程序。我的文件夹结构类似于/src/de/web/project/
我通过调用主方法java de.web.project.WakeOnLan
(这是启动所有其他类的主类等)。我得到了常见的 ClassNotFound 异常,因此添加了 -cp 参数,所以我通过调用项目java -cp .;mysql-connector-java-5.0.8.jar de.web.project.WakeOnLan
来添加驱动程序到类路径。
这从命令行在我的 Windows 计算机上运行良好,但现在我想将此代码推送到我的 Raspberry Pi 并在那里执行它。正如我所说,我在那里安装了 OpenJDK7(使用 apt-get,如果这很重要的话),使用 SFTP 将文件夹结构和代码上传到 /home/pi/java/ 那里还有 ejre1.7.0_10 文件夹(所以代码现在实际上在/home/pi/java/de/web/project/)。
我现在回到 /home/pi/java 并java -cp .;mysql-connector-java-5.0.8.jar de.web.project.WakeOnLan
像在 Windows 计算机上一样输入,但它拒绝工作(我已将连接器放在途中的任何文件夹中,以防万一)。当我调用这个函数时,我得到一长串 Java 想要给我哪些参数允许用于 java 的提示,最后说明:-bash: mysql-connector-java-5.0.8.jar: command not found
. 我还尝试将“.;mysql ...”转为“mysql ...;。” 这也不起作用。如果我不包含 -cp 参数,我的程序会显示“线程已启动”并在下一行中显示:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
等等,因此程序确实会启动并将“线程已启动”写入 System.out。
出于某种原因,树莓派上的 Java 似乎忽略了类路径参数的第二个值,我看不出有什么好的理由。