02. maj 2002 - 15:18Der er
13 kommentarer og 3 løsninger
Hvad betyder denne fejl?
Jeg har et program bestående af en main-metode og en mappe med klasser. Disse er alle en del af en pakke k2. Jeg importere dem jeg skal bruge i starten af main-metoden. Når jeg compiler programmet er der ingen problemer. Når jeg kører programmet på skolen virker det fint, men når jeg kører det der hjemme får jeg følgende fejlmeddelelse: Exception in thread "main" java.lang.NoSuchMethodError at K2.RotationManager.<init>(RotationManager.java:30) at K2.MotionManager.<init>(MotionManager.java:24) . . . at Main.main(Main.java:21)
Hvad betyder det? Jeg har inkluderet mappen klasserne ligger i, i CLASSPATH.
Du kører programmet som: java -cp . MyProgram hvor MyProgram skal indeholde main metoden. Hvis nogle af dine klasser ikke ligger lokalt skal de tilføjes til "." i ovenstående, som i .:/home/user/me/java/packages eller noget tilsvarende, dog ; i stedet for : for Windows vedkommende.
CarstenKnudsen > jeg har allerede tilføjet . til min classpath og K2 mappen er også tilføjet. Jeg kører med sdk 1.3.1, jeg ved ikke hvilken version de har på skolen.
Hvis programmet med main metoden ligger i k2 skal du skrive java -cp . k2.MyProgram ellers kan den ikke finde det. Det er ikke nok at tilføge k2 i classpath'en.
jeg har en klasse der hedder Main som indeholder main-metoden. Denne ligger i roden og resten ligger i mappen K2. Jeg kan sagtens compile skidtet, jeg kan bare ikke køre det.
en hurtig test siger den sagtens kan finde main, men jeg får fejlen:
Exception in thread "main" java.lang.NoSuchMethodError at K2.RotationManager.<init>(RotationManager.java:30) at K2.MotionManager.<init>(MotionManager.java:24) . . . at Main.main(Main.java:21)
Prikken betyder bare, at der er et par linjer mere med tilsvarende fejl som de 2 første.
Stacktracet fortæller at fejlen sker inde i constructoren til RotationManager (linie 30). Det er formodentlig derinde du bruger noget den ikke kan finde.
Men hvad mener du præcist når du skriver " Jeg importere dem jeg skal bruge i starten af main-metoden. " i dit oprindelige spørgsmål? Det er lidt noget sludder, så du mener sikkert noget andet.
jeg importerer dem selvfølgelig før main-metoden. Jeg havde godt regnet med, at det var i konstruktoren at det var galt udfra metode navnene. Men hvorfor kan jeg kører det på skolen og ikke herhjemme?
jeg afinstallerede java sdk 1.3.1 og installerede 1.4, dette løste problemet, hvorfor? Jeg har hørt andre der har kørt 1.3.1 hvor det har virket. Tak for hjælpen alligevel, hvis der er nogen der kan svare på hvorfor det virker nu er jeg meget interesseret. Vi deler i porten.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.