Java NoClassDefFoundError:StudentRegistrar
我的代码中出现了错误,几个小时来我一直在努力解决这个问题。有什么想法吗。。。。此应用程序中有两个java文件和一个DB.properties文件。现在,程序除了测试与数据库的连接之外,不应该做任何事情。如果我错过了什么,请原谅我,因为我是Java新手 StudentRegistrar.javaJava NoClassDefFoundError:StudentRegistrar,java,noclassdeffounderror,Java,Noclassdeffounderror,我的代码中出现了错误,几个小时来我一直在努力解决这个问题。有什么想法吗。。。。此应用程序中有两个java文件和一个DB.properties文件。现在,程序除了测试与数据库的连接之外,不应该做任何事情。如果我错过了什么,请原谅我,因为我是Java新手 StudentRegistrar.java package studentregistrar; import java.io.File; import java.sql.Connection; import java.sql.ResultSet
package studentregistrar;
import java.io.File;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
public class StudentRegistrar {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws Exception
{
// TODO code application logic here
System.out.println(args);
System.out.println(args.length);
if (args.length == 0)
{
System.out.println("Usage: java -classpath driver_class_path"
+ File.pathSeparator
+ ". Test DB.properties");
return;
}
else
SimpleDataSource.init(args[0]);
Connection conn = SimpleDataSource.getConnection();
try
{
Statement stat = conn.createStatement();
stat.execute("CREATE TABLE Test (Name CHAR(20))");
stat.execute("INSERT INTO Text VALUES ('Romeo')");
ResultSet result = stat.executeQuery("Select * FROM Test");
result.next();
stat.execute("DROP TABLE Test");
}
finally
{
conn.close();
}
}
}
package studentregistrar;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class SimpleDataSource {
public static void init(String filename)
throws IOException, ClassNotFoundException
{
Properties props = new Properties();
FileInputStream in = new FileInputStream(filename);
props.load(in);
String driver = "com.mysql.jdbc.Driver";
url = props.getProperty("jdbc.url");
username = props.getProperty("jdbc.username");
if (username == null) username = "";
password = props.getProperty("jdbc.password");
if (password == null) password = "";
if(driver != null)
Class.forName(driver);
}
public static Connection getConnection()
throws SQLException
{
return DriverManager.getConnection(url, username, password);
}
private static String url;
private static String username;
private static String password;
}
SimpleDataSource.java
package studentregistrar;
import java.io.File;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
public class StudentRegistrar {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws Exception
{
// TODO code application logic here
System.out.println(args);
System.out.println(args.length);
if (args.length == 0)
{
System.out.println("Usage: java -classpath driver_class_path"
+ File.pathSeparator
+ ". Test DB.properties");
return;
}
else
SimpleDataSource.init(args[0]);
Connection conn = SimpleDataSource.getConnection();
try
{
Statement stat = conn.createStatement();
stat.execute("CREATE TABLE Test (Name CHAR(20))");
stat.execute("INSERT INTO Text VALUES ('Romeo')");
ResultSet result = stat.executeQuery("Select * FROM Test");
result.next();
stat.execute("DROP TABLE Test");
}
finally
{
conn.close();
}
}
}
package studentregistrar;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class SimpleDataSource {
public static void init(String filename)
throws IOException, ClassNotFoundException
{
Properties props = new Properties();
FileInputStream in = new FileInputStream(filename);
props.load(in);
String driver = "com.mysql.jdbc.Driver";
url = props.getProperty("jdbc.url");
username = props.getProperty("jdbc.username");
if (username == null) username = "";
password = props.getProperty("jdbc.password");
if (password == null) password = "";
if(driver != null)
Class.forName(driver);
}
public static Connection getConnection()
throws SQLException
{
return DriverManager.getConnection(url, username, password);
}
private static String url;
private static String username;
private static String password;
}
DB.properties
jdbc.url=jdbc:mysql://localhost:3306/registrar
jdbc.username=root
jdbc.password=notmypassword
jdbc.driver=com.mysql.jdbc.Driver
我用NetBeans编译应用程序,根据我所知道的,我运行这个命令
java -class driver_class_path:. StudentRegistrar DB.properties
我得到以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: StudentRegistrar
Caused by: java.lang.ClassNotFoundException: StudentRegistrar
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: StudentRegistrar. Program will exit.
我做错了什么!!!我肯定这是件愚蠢的事
谢谢你抽出时间。
Kevsteelio您需要调整路径 首先找到StudentRegistrar.class存在的位置。一定是什么地方
<path to somefolder>/studentregistrar/StudentRegistrar.class
/studentregistrar/studentregistrar.class
将该
包含到类路径中。(类路径中的分隔符是特定于平台的。:
适用于类unix和;
windows)每次使用此类进行连接
package pack1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
*
* @author Ali
*/
class Connect {
Connection con = null;
public Connect() {
String url = "jdbc:mysql://localhost:3306/database";
String user = "user"; // defaultnya adalah root
String pass = "****";// sesuaikan dengan konfigurasi saat install
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = (Connection) DriverManager.getConnection(url, user, pass);
System.out.print("connecté à la base!");
} catch (SQLException ex) {
ex.printStackTrace();
} catch (InstantiationException ex) {
ex.printStackTrace();
} catch (IllegalAccessException ex) {
ex.printStackTrace();
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
}
public Connection getCon() {
return con;
}
public Connection crtst() {
return con;
}
}
在考试班上
Connection con = new Connect().getCon();
try{
Statement st = con.createStatement();
int val = st.executeUpdate("INSERT employee VALUES("+13+","+"'Aman'"+")");
System.out.println("1 row affected");
}
catch (SQLException s){
System.out.println("SQL statement is not executed!");
}
如何在命令行中运行: 注意:SimpleDataSource.java、StudentRegistrar.java和mysql驱动程序(jar)位于运行以下命令的同一目录中
In Windows
compile:
javac -cp .;mysql_driver_jar SimpleDataSource.java
javac StudentRegistrar.java
run:
java -cp .;mysql_driver_jar StudentRegistrar DB.properties
In Unix
Compile:
javac -cp .:mysql_driver_jar SimpleDataSource.java
javac StudentRegistrar.java
run:
java -cp .:mysql_driver_jar StudentRegistrar DB.properties
哪些错误或异常您获取的程序包名称不区分大小写
java-class驱动程序\u class\u路径:。studentregistrar.studentregistrar DB.properties
这里的问题与连接到数据库完全无关。或者MySQL。不。它在一个包裹里。他的计划很少或根本不起作用。