2010-10-20 4 views
0

Sur OS X.Comment réparer cette erreur "Le paquet n'existe pas"?

$ java -version 
java version "1.6.0_20" 
Java(TM) SE Runtime Environment (build 1.6.0_20-b02-279-10M3065) 
Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01-279, mixed mode) 

Voici mon ensemble du projet:

$ ll 
total 1072 
-rw-r--r-- 1 ethan ethan 1316 Oct 19 17:17 BlackberryDataExtractor.class 
-rw-r--r-- 1 ethan ethan 1439 Oct 19 18:05 BlackberryDataExtractor.java 
[email protected] 1 ethan ethan 537303 Apr 19 2010 sqljdbc4.jar 
                <-- MS SQL Server JDBC driver 

est ici BlackberryDataExtractor.java. Ça ne fait vraiment rien pour le moment. J'essaie juste d'obtenir des choses de base fonctionnant comme la connexion de DB:

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 
import com.microsoft.sqlserver.jdbc; 

class BlackberryDataExtractor { 

    public static void main(String[] args) { 
    Connection con = BlackberryDataExtractor.getConnection(); 
    } 

    public static final Connection getConnection() 
    { 
    Connection con = null; 
    try 
    { 
     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
     con = DriverManager.getConnection("jdbc:sqlserver://[ etc... ]"); 
     String SQL = "SELECT uc.MailboxSMTPAddr AS email, sd.PhoneNumber AS phone_number" 
     + "FROM dbo.UserConfig uc, dbo.SyncDeviceMgmtSummary sd" 
     + "WHERE sd.UserConfigId = uc.Id"; 
     Statement stmt = con.createStatement(); 
     ResultSet rs = stmt.executeQuery(SQL); 

     while (rs.next()) { 
     System.out.println(rs.getString("email") + ", " + rs.getString("phone_number")); 
     } 
     rs.close(); 
     stmt.close(); 

    } 
    catch(SQLException e) 
    { 
     e.printStackTrace(); 
    } 
    catch(ClassNotFoundException e) 
    { 
     e.printStackTrace(); 
    } 
    return con; 
    } 
} 

Il ne compilera pas. Voici l'erreur:

$ javac -cp "$CLASSPATH;*.jar" BlackberryDataExtractor.java 
BlackberryDataExtractor.java:4: package com.microsoft.sqlserver does not exist 
import com.microsoft.sqlserver.jdbc; 
          ^
BlackberryDataExtractor.java:23: cannot find symbol 
symbol : class Statement 
location: class BlackberryDataExtractor 
     Statement stmt = con.createStatement(); 
    ^
BlackberryDataExtractor.java:24: cannot find symbol 
symbol : class ResultSet 
location: class BlackberryDataExtractor 
     ResultSet rs = stmt.executeQuery(SQL); 
    ^
3 errors 

Répondre

2

javac ne comprend pas comme jokers *.jar. Vous devez être explicite.

Essayez javac -cp "$CLASSPATH;sqljdbc4.jar" ...

+0

Merci, j'ai eu la même erreur. – Ethan

+1

Votre déclaration d'importation est incorrecte de toute façon. Vous ne pouvez pas importer un paquet entier à moins que vous n'importiez com.microsoft.sqlserver.jdbc. *; ', Sauf s'il existe une classe nommée' jdbc' dans le paquet 'com.microsoft.sqlserver'. –

+0

Ouais, j'ai oublié comment écrire Java (ou l'a supprimé, plutôt). J'ai corrigé la déclaration d'importation. Essayé 'com.microsoft.sqlserver.jdbc. *;', Puis essayé d'importer les classes individuellement. Aucun des deux ne fonctionne. javac ne trouve toujours pas les classes. – Ethan

1

Est-ce speciffing le fichier jar directement au lieu d'un glob "* .jar" travail?

javac -cp "$CLASSPATH;sqljdbc4.jar" BlackberryDataExtractor.java 

Il semble également qu'il vous manque quelques fichiers java.sql. importations. (ResultSet et Statement)

+0

Merci Vous avez généré une erreur identique – Ethan

+0

Le fichier contient-il réellement les classes que vous importez? jar tf sqljdbc4. jar devrait lister les fichiers de classe com.microsoft.sqlserver.jdbc si oui – kkress

+0

Oui, il contient définitivement ces classes. – Ethan

Questions connexes