2010-02-10 5 views
2

Un membre de mon équipe a un problème avec un projet qu'il a reçu de notre SVN. Quand il tente d'exécuter un fichier, il obtient l'erreur:Java NoClassDefFoundError à cause de "faux" slashes

java.lang.NoClassDefFoundError: misc\test (wrong name: misc/test) 

Nous ne comprenons pas vraiment pourquoi il obtient cette erreur. On dirait que les barres obliques sont la cause de cela, mais je ne comprends pas comment c'est un problème ou comment y remédier .. :(

Nous utilisons tous les deux NetBeans (je suis sur 6.7.1 et il 6.8) et la fonctionnalité svn intégrée.J'ai créé le projet de mon ordinateur, un Mac, et il utilise Win7.Cela pourrait-il avoir quelque chose à voir avec cela? Unix et Win utilisent des barres obliques différentes pour les chemins après tout .. Mais je ne sais pas « t voir comment changer cela parce qu'il est en cours d'exécution les fichiers de l'IDE.

Ainsi, toute aide serait appréciée. Merci!
Stian

+3

comment essaie-t-il de le faire fonctionner? – Bozho

+1

Comment fonctionne-t-il le fichier? Par exemple, quelle est la ligne java blahblahblah équivalente à ce que l'EDI essaie de faire? Ne vous inquiétez pas de la chose slash-vs-backslash dans l'exception. Java affiche presque toujours des chemins à l'aide de barres obliques, même sous Windows, mais cela ne signifie pas qu'il est confus à leur sujet. –

+0

Vous devriez voir une trace de pile qui montre l'origine de l'exception. Fondamentalement, un morceau de code quelque part pense que 'misc \ test' est le nom d'une classe. La trace de la pile aidera à trouver ce morceau de code. –

Répondre

1

en indiquant les chemins en java, il est une bonne idée d'utiliser toujours les séparateurs unix, Comme ils w ork sur Windows. En outre, lorsqu'il est utilisé dans java Strings, le '\' est le caractère d'échappement, donc vous devez toujours utiliser deux (notez que ceci n'est pas vrai pour votre cas).

+1

Euh non, Java ne traduira pas du tout. Windows ** juste ** le supporte aussi. Poke un peu rond dans 'cmd' vous-même;) – BalusC

+0

Merci pour l'addition, je vais mettre à jour la réponse. – Thirler

0

Il coutures comme il tente d'exécuter misc\test comme dans

java misc\test 

mais correct devrait être

java misc.test 

(également accepté java misc/test)

** testé sur Windows XP *

Vous ne savez pas comment cela peut se produire dans l'EDI. Êtes-vous sûr qu'il n'utilise pas quelque chose comme fourmi pour le faire fonctionner? Je voudrais rechercher quelque chose comme "misc/test" ou "misc \ test" et le remplacer par "misc.test" (en supposant que misc est le paquet).

+0

Salut, oui, il l'exécute directement à partir de l'IDE (clic droit sur le fichier et en sélectionnant Exécuter le fichier). Donc, je ne comprends pas pourquoi cela se produit .. Peut-être que NetBeans agira bizarrement.Les fichiers qu'il ne peut pas exécuter sont dans les "paquets de test" dans NetBeans, mais il peut exécuter des fichiers qui se trouvent dans les "paquets sources". – Stian

Questions connexes