Orjanp Skrevet 11. mars 2003 Del Skrevet 11. mars 2003 Bruker Borland JBuilder 8. Når jeg har kompilert et program er det ikke mulig å kjøre det fra kommandolinje. Får bare exception NoClassDefFoundError. Det funker imidlertid fint å kjøre det inni JBulder. Er det noen instillinger i JBuilder som gjør at jeg vil kunne kjøre det fra kommandolinje. Hvordan importere jeg en fil i java? Har en fil med metoder jeg ønsker å importere. Hva gjør jeg? Har prøvd med import "filnavn.java";. Funker ikke. Lenke til kommentar
MailMan13 Skrevet 11. mars 2003 Del Skrevet 11. mars 2003 Du bruker ikke kildefilen når du importerer, det er det # include statementet i en del andre språk som gjør. import enPakke.Klasse; // importerer en klasse i en pakke import enPakke.*; // importerer alle klassene i en pakke En pakke kan være en mappe, jar eller zip fil der klassene er deklarert med package enPakke; på toppen. Klasser som ligger i samme pakke eller mappe som den du kompilerer skal ikke importeres (fra og med jdk1.4 får du feilmeldinger for det). Pakker som importeres må ligge i classpath når du kompilerer. (f.eks med -cp argumentet til 'javac' og 'java' eller ved å montere opp pakkene i ide'et ditt) Lenke til kommentar
Orjanp Skrevet 12. mars 2003 Forfatter Del Skrevet 12. mars 2003 Jeg deklarerer <pakage myproject> øverst i både <myproject.java>, der main ligger. Og i <extClasses.java> der de ekstra klassene ligger, har ingen main. Så har jeg <import myproject.*> for å få med alle klassene. Får feilmelding på at klassen <extClasses.java> ikke finnes. Noen tips på hva jeg har gjort feil? Lenke til kommentar
threiran Skrevet 12. mars 2003 Del Skrevet 12. mars 2003 mine 2 cent: husk at hvis du putter filene i en pakke bør de ligge i en mappe med samme navn. dvs en fil med package mypackage; bør ligge i mappen mypackage Enkleste måten å kjøre et program i en slik pakke på (uten å sette classpaths) er å stå i mappa utenfor og skrive java mypackage.MyClass Dersom det er en liten sak, og pakker ikke er vesentlig, holder det med følgende i EnKlasse.java, for å importere EnAnnenKlasse.java: import EnKlasse; De må da ligge i samme katalog... CPL Lenke til kommentar
Orjanp Skrevet 13. mars 2003 Forfatter Del Skrevet 13. mars 2003 Her er et lite eksempel. Så er det kanskje lettere å finne feil. package myProject; import myProject.*; public class myProject { public myProject() { int number = retSum(); System.out.println(number); } public static void main(String[] args) { new myProject(); } } package myProject; public class extClass { public int retSum() { return 3+5; } } Disse kodesnuttene ligger i hver sin fil. Filene heter henholdsvis myProject.java og extClass.java. Begge filene ligger i samme mappe. Jeg får følgende feilmelding Method retSum() not found in class myProject.myProject at line 6 . Når jeg skriver <import myProject.> , kommer code completion inn å foreslår <*>, <extClass> og <myProject>. Uansett hvilke av disse jeg velger får jeg samme feilmelding. Har også prøvd å ha samme navn på metode og klasse i extClass, uten at det har hjulpet. Det hele gjøres da fortsatt i JBuilder 8. Noen ideer? Edit: Innlegg 666, the devil himself..... Lenke til kommentar
MailMan13 Skrevet 13. mars 2003 Del Skrevet 13. mars 2003 package myProject; import myProject.*; Klasser som er i samme pakke trenger du ikke importere, det ligger implisitt at alle andre klasser er tilgjengelig i pakkedeklarasjonen (dvs. import statementet kan du se helt bortifra). Klasser bruker man normalt å gi navn med STOR forbokstav. retSum metoden din er i extClass, siden den den ikke er deklarert static må du oprette et object av typen extClass for å kunne bruke den, altså: extObjekt = new extKlasse(); int number = extObject.retSum(); Det ser ut som du vil bruke import på samme måte som som man bruker include i en del andre språk, det går altså ikke. Du må henvise til hvilke objekt (klasse for statiske metoder) du ønsker å benytte. Det ser ut som du sliter litt med objektorienteringen, det kan kanskje være lurt å sette seg inn i det før man begynner å legge ting i pakker. Lenke til kommentar
Orjanp Skrevet 13. mars 2003 Forfatter Del Skrevet 13. mars 2003 Der funker det. Takk for hjelpen. Du har rett i at jeg ikke har hatt noe særlig med objektorientering i java å gjøre. Har programmert litt med C++. Det merkes tydeligvis :smile: Kommer foreløpig til å bruke java til sommeren, så jeg regner med å lære mer etterhvert. Igjen, takk for hjelpen.... Ørjan..... Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå