2012-06-11 6 views
1

si je lance java -classpath ./sqljdbc4.jar myclassname erreur estjava -classpath ./sqljdbc4.jar myclassname

Exception in thread "main" java.lang.NoClassDefFoundError:myclassname

si je lance erreur java myclassname est

java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

Il est sous Linux. Comment le réparer?

+0

Je n'utilise pas de fichier jar. C'est myclassname.class. Dois-je utiliser un pot? – lonelyloner

Répondre

2

Le répertoire ou le fichier jar contenant l'arborescence de packages de classes (c'est-à-dire le répertoire contenant le répertoire com, dans l'exemple suivant) doit figurer dans le chemin de classe. Et le sqljdbc4.jar doit également être. Mettez les deux dans le classpath:

java -cp ../classes:./sqljdbc4.jar com.foo.bar.MyClassName 

Notez également que vous devez utiliser le nom complet de la classe principale (comme l'exemple ci-dessus montre), et que les noms de classe Java utilisent CamelCase par convention.

+1

Cela devrait être '-cp' au lieu de' -jar' comme: 'java -cp.: ./ sqljdbc4.jar com.foo.bar.MyClassName'. Notez également si ses fenêtres, puis utilisez ';' au lieu de ':' lorsque vous spécifiez classpath. – Chandra

+0

Vous avez bien sûr raison. J'ai corrigé la réponse. Je ne sais même pas pourquoi j'ai écrit -jar en premier lieu. –

+0

Merci les gars pour votre aide. – lonelyloner