Linux上的Java到MySql连接
我在谷歌上搜索了这个话题,但还没有找到答案。我在AWS Amazon实例上运行Java,试图运行简单的Java到mysql数据库。我可以通过mysql命令访问db fine。这个错误快把我逼疯了 注意,我在/development下运行,它正好有jar文件Linux上的Java到MySql连接,java,mysql,jdbc,Java,Mysql,Jdbc,我在谷歌上搜索了这个话题,但还没有找到答案。我在AWS Amazon实例上运行Java,试图运行简单的Java到mysql数据库。我可以通过mysql命令访问db fine。这个错误快把我逼疯了 注意,我在/development下运行,它正好有jar文件 [ec2-user@ip-172-31-16-232 development]$ ls cProgram.c Java2MySql.class Java2MySql.java mysql-connector-java-5.1.12.ja
[ec2-user@ip-172-31-16-232 development]$ ls
cProgram.c Java2MySql.class Java2MySql.java mysql-connector-java-5.1.12.jar
[ec2-user@ip-172-31-16-232 development]$ echo $JAVA_HOME
/usr/lib/jvm/java
[ec2-user@ip-172-31-16-232 development]$ java -cp /home/ec2-user/development/mysql-connector-java-5.1.12.jar Java2MySql.java
[ec2-user@ip-172-31-16-232 development]$ java Java2MySql
Where is your MySQL JDBC Driver?
MySQL JDBC Driver Registered!
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/smarteregsBlog
at java.sql.DriverManager.getConnection(DriverManager.java:596)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at Java2MySql.main(Java2MySql.java:21)
Closing connection
Java2MySql.java
public class Java2MySql
{
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/myBlog";
String driver = "com.mysql.jdbc.Driver";
String userName = "sam";
String password = "Yoo!";
Connection conn = null;
try {
Class.forName(driver);
}catch (ClassNotFoundException e) {
System.out.println("Where is your MySQL JDBC Driver?");
}
System.out.println("MySQL JDBC Driver Registered!");
try{
conn = DriverManager.getConnection(url,userName,password);
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
System.out.println("Closing connection");
conn.close();
} catch (Throwable ignore){}
}
}
在编译类时,您不需要指定jar,在这种情况下非常简单,这样就可以完成这项工作
javac Java2MySql.java
改变这个
java -cp /home/ec2-user/development/mysql-connector-java-5.1.12.jar Java2MySql.java
到
您似乎只在编译时提供jar,而在尝试执行代码时不提供jar类路径:
javac -cp /home/ec2-user/development/mysql-connector-java-5.1.12.jar Java2MySql.java
我假设它是一个打字错误javac
,而不是java
执行代码时还需要提供jar路径。所以改变这个
java Java2MySql
到
注意:mysql-connector-java-5.1.12.jar只在运行时需要,因为您是动态加载类的 确保mysql连接器jar位于类路径中。将其复制到与类文件相同的文件夹中是行不通的。
或者您可以简单地将其复制到jdk的lib文件夹中。您确定mysql-connector-java-5.1.12.jar在home/ec2 user/development下存在吗?检查mysqlconnector-jar文件在您的类路径下是否可用,除非我是盲人,[ec2]-user@ip-172-31-16-232开发]$ls Java2MySql.class Java2MySql.java mysql-connector-java-5.1.12.jar为什么不使用single
try..catch
block和printStackTrace()
捕获异常?如果您知道通过终端运行类,我想在执行classUsage:java[-options]class[args…](执行类)或java[-options]-jar jarfile[args…](执行jar文件)我不明白有些人怎么能在不分析任何东西的情况下简单地否决投票?好的,我怎么能解决这个问题,这样我就不必输入了,假设我在我的原始帖子中显示的变量?@ironman2012修复什么?不必提供类路径?在这种情况下,你需要将它打包到一个罐子中,这个罐子的man中有一个类路径
条目ifest.@markrotteveel,不,我的意思是如何不在每次编译和运行可执行文件时显式指定类路径?
java Java2MySql
java -cp .:/home/ec2-user/development/mysql-connector-java-5.1.12.jar Java2MySql