NoClassDefFoundError: StudentRegistrar
Bin ich immer Fehler in meinem code, und ich habe schlug meinen Kopf gegen diese für ein paar Stunden. Irgendwelche Gedanken.... Es sind zwei java-Dateien in dieser Anwendung und eine DB.Eigenschaften-Datei. Jetzt ist das Programm nicht eigentlich etwas anderes zu tun als zu testen, die Verbindung zur Datenbank. Wenn ich etwas verpasst, bitte verzeih mir, wie ich bin neu in Java.
StudentRegistrar.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();
}
}
}
SimpleDataSource.java
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.Eigenschaften
jdbc.url=jdbc:mysql://localhost:3306/registrar
jdbc.username=root
jdbc.password=notmypassword
jdbc.driver=com.mysql.jdbc.Driver
Ich kompilieren Sie die Anwendung in NetBeans ein und aus, was ich sagen kann ich den Befehl ausführen
java -class driver_class_path:. StudentRegistrar DB.properties
Und ich bekomme Folgenden Fehler:
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.
Was Mache ich FALSCH!!! Ich bin sicher, es ist etwas doof.
Vielen Dank für Ihre Zeit.
Kevsteelio
- welche Fehler oder Ausnahmen u r erste
- Nicht Paket-Namen case-sensetive
- Was
java -class driver_class_path:. studentregistrar.StudentRegistrar DB.properties
- Das problem hier ist, hat genau nichts mit der Verbindung zu einer Datenbank. oder MySQL entweder.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie ggf. den Pfad.
Zuerst herausfinden, wo der StudentRegistrar.class vorhanden ist. Es müssen einige, wo wie
Gehören, die
< folder>
in Ihrer Klasse Weg. (Die Trennzeichen im classpath ist Plattform-spezifisch.:
für unix-ähnliche und;
windows)Diese Klasse verwenden, um die Verbindung jedes mal
in einer test-Klasse
http://www.roseindia.net/jdbc/jdbc-mysql/InsertValues.shtml
How to run in command line:
Hinweis: SimpleDataSource.java, StudentRegistrar.java und der mysql-Treiber (jar) in das gleiche Verzeichnis, von wo Sie die folgenden Befehle ausführen