Hallo!
Ich hatte unter RedHat mal das Problem, das ich immer die Fehlermeldung "Exception in Thread Main" bekam, wenn ich die Java-VM mit irgendeine CLASS-Datei starten wollte.
Hatte mit
java Klassenname
aufgerufen. Seit der Installation von Suse und der vorinstallierten JavaVM, hatte ich dieses Problem nicht mehr. Nun möchte ich von einer Konsolen-Application, die auf dem Server laufen soll, eine lokale JDBC-Verbindung zum MySQL-Server aufbauen, habe eine ganz einfache Anwendung geschrieben, die mit dem MySQL-Connector-Treiber (welchen man bei MySQL.org herunterladen kann - die Datei heisst mysql-connector-java-3.1.7-bin.jar) die Verbindung aufbauen soll.
Dazu hatte ich in /etc/profile.local eine neue Zeile "export CLASSPATH=/usr/lib/SunJava1.4../jdbc/" eingetragen. Danach bekam ich bei JEDER Application (sogar HelloWorld ohne irgendwelche JDBC-Befehle) die Fehlermeldung "Exception in thread "main"".
Daraufhin hatte ich den Pfad wieder herausgenommen, die Datei in mein Java-Benutzer-Verzeichnis kopiert (/home/java), mich als user java angemeldet und mit javac die Datei kompiliert. Ich bekam keine Fehlemeldungen.
Habe versucht mit
die CLASS-Datei mit der VM zu starten, hatte aber keinen Erfolg. Immer:
Als ob ich entweder die Klasse nicht so wie die Datei genannt hätte, oder zum Beispiel die Main-Methode vergessen hätte. Hab ich den Parameter CLASS-PATH allerdings weggenommen bekam ich die Fehlermeldung meines CATCH-Blocks
Wie bring ich meiner VM bei, das sie die MySQL-Connector-Datei nehmen soll?? (Ist immer noch die Vorinstallierte von SUSE)
Hier nochmal der Java-Code (dürfte nicht so wichtig sein):
Ich hatte unter RedHat mal das Problem, das ich immer die Fehlermeldung "Exception in Thread Main" bekam, wenn ich die Java-VM mit irgendeine CLASS-Datei starten wollte.
Hatte mit
java Klassenname
aufgerufen. Seit der Installation von Suse und der vorinstallierten JavaVM, hatte ich dieses Problem nicht mehr. Nun möchte ich von einer Konsolen-Application, die auf dem Server laufen soll, eine lokale JDBC-Verbindung zum MySQL-Server aufbauen, habe eine ganz einfache Anwendung geschrieben, die mit dem MySQL-Connector-Treiber (welchen man bei MySQL.org herunterladen kann - die Datei heisst mysql-connector-java-3.1.7-bin.jar) die Verbindung aufbauen soll.
Dazu hatte ich in /etc/profile.local eine neue Zeile "export CLASSPATH=/usr/lib/SunJava1.4../jdbc/" eingetragen. Danach bekam ich bei JEDER Application (sogar HelloWorld ohne irgendwelche JDBC-Befehle) die Fehlermeldung "Exception in thread "main"".
Daraufhin hatte ich den Pfad wieder herausgenommen, die Datei in mein Java-Benutzer-Verzeichnis kopiert (/home/java), mich als user java angemeldet und mit javac die Datei kompiliert. Ich bekam keine Fehlemeldungen.
Habe versucht mit
Code:
java -classpath ".;~/mysql-connector-java-3.1.7-bin.jar" Datenbank
java -classpath .;~/mysql-connector-java-3.1.7-bin.jar Datenbank
java -classpath ~/mysql-connector-java-3.1.7-bin.jar Datenbank
java -classpath "~/mysql-connector-java-3.1.7-bin.jar" Datenbank
java -classpath "/home/java/mysql-connector-java-3.1.7-bin.jar" Datenbank
... usw
die CLASS-Datei mit der VM zu starten, hatte aber keinen Erfolg. Immer:
Code:
Exception in thread "main" java.lang.NoClassDefFoundError: Datenbank
Als ob ich entweder die Klasse nicht so wie die Datei genannt hätte, oder zum Beispiel die Main-Methode vergessen hätte. Hab ich den Parameter CLASS-PATH allerdings weggenommen bekam ich die Fehlermeldung meines CATCH-Blocks
Code:
java@vs148083:~> java Datenbank
JDBC-ODBC-Treiber nicht gefunden.
Fehler!
Wie bring ich meiner VM bei, das sie die MySQL-Connector-Datei nehmen soll?? (Ist immer noch die Vorinstallierte von SUSE)
Hier nochmal der Java-Code (dürfte nicht so wichtig sein):
Code:
import java.sql.*;
public class JDBCTest {
public static void main (String args[])
{
try {
Class.forName("com.mysql.jdbc.Driver");
}
catch (ClassNotFoundException e) {
System.out.println ("JDBC-ODBC-Treiber nicht gefunden.");
}
try
{
Connection conn = DriverManager.getConnection ("jdbc:mysql://www.tabulaturen.de/tabulaturen", "root", "asdfjklö42");
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery ("SELECT * FROM interpret");
while (rs.next())
{
System.out.print ("ID: " + rs.getInt ("ID") + " ");
}
rs.close();
st.close();
}
catch (Exception e)
{
System.out.println("Fehler!");
System.exit(0);
}
}
}