因此,我有一个打算从终端运行的程序,该终端应在运行该程序的机器上本地连接到mysql服务器。但是,在连接器也被视为主程序的情况下存在冲突(我认为)。从终端运行时会抛出此错误:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at nu.educom.dbInsert.MySqlConn.getConn(MySqlConn.java:25)
at nu.educom.dbInsert.ConsoleApp.start(ConsoleApp.java:56)
at nu.educom.dbInsert.Main.main(Main.java:13)
我试图使清单如此:
Manifest-Version: 1.0
Main-Class: nu.educom.dbInsert.Main
Class-Path: lib/mysql-connector-java-5.1.22.jar
我实际上在程序中存在的每个目录中都围绕连接器移动。从IDE运行时,它工作正常。
从终端运行时给出的参数用于连接到本地mysql服务器。我在SO上找到的所有解决方案都是关于使其在IDE中工作的。我在其他网站上发现了一个过时的帖子,建议在清单中设置类路径。我不知道该放什么,或者甚至不是我需要的东西。
在终端中运行程序的命令:
dbInsert -p:**** -u:root -d:products empty.csv
其中dbInsert是别名:
dbInsert="cd ~/desktop/projects/java/dbInsert/out/production/dbInsert/; java nu/educom/dbInsert/Main"