在Linux上访问Mysql时出现CLASSPATH问题

时间:2010-11-11 07:16:37

标签: java mysql linux classpath

我在我的Linux机器上安装了Mysql并编写了一个示例程序来访问其中一个表。 我正在使用'mysql-connector-java-5.1.10.jar'

如果我把jar放在'jre / lib / ext'中,代码工作正常。但是,识别该jar的其他方法不起作用。我尝试设置$ CLASSPATH并尝试使用'。'当前目录。

失败时出现以下错误:

java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306
        at java.sql.DriverManager.getConnection(DriverManager.java:602)
        at java.sql.DriverManager.getConnection(DriverManager.java:185)

1 个答案:

答案 0 :(得分:0)

我通常不使用全局$CLASSPATH变量,让它运行的最简单方法是

java -cp .;/path/to/mysql-connector-java-5.1.10.jar[;<other libs>] pkg.name.MyApplication

<强>旁注

如果您的应用程序导出到具有Main-Class属性(“可执行jar”)的jar并以java -jar myjar.jar启动,那么您必须添加所有必需的在这种情况下,jars清单的库,$CLASSPATH-cp将被忽略。这就是为什么我通常不使用-jar选项...

修改

回答您的其他问题:如果默认情况下当前目录已添加到类路径中,则应用程序启动的位置可能会影响应用程序本身。

想象一下jar中的应用程序和启动命令

 java -cp application.jar com.example.Main

现在我们有了一个已定义的环境:只有application.jar(和jre类)的内容在classpath和应用程序的一部分上。如果当前目录自动添加到类路径中,则当前位置(以及所有子文件夹的位置)上的所有文件也将位于类路径上,是否打算。结果,如果从用户主目录启动应用程序可能会起作用,但如果从根目录(/)启动,则可能不会。