SunixMedlem sedan juli 2004310 inlägg Hej!
Hemma hos mig där jag har java installerat kan jag kompilera och exekvera java kod! jipiii !! Men....
på mitt arbete med samma konfiguration samma miljövariabler (tror jag) osv.. så kan jag inte kompilera om jag anropar en annan class i koden.
hmm EXEMPEL:
class Klassen i filen Klassen.java går att kompilera för sig
{
Massa saker ...........
}
Ny fil - Mainen i filen Mainen.java
{
Klassen olle = new Klassen();
}
FUNKAR INTE. HITTAR INTE CLASSEN KLASSEN :(
C:\Documents and Settings\TomMar\Skrivbord\Jav
Mainen.java:8: cannot resolve symbol
symbol : class Testtt
location: class Mainen
Testtt kalle = new Testtt();
^
Mainen.java:8: cannot resolve symbol
symbol : class Testtt
location: class Mainen
Testtt kalle = new Testtt();
^
2 errors
Hjälp jag blir galen!
Mc FettoMedlem sedan nov. 20022 355 inlägg Har du en klass Testtt då?
SunixMedlem sedan juli 2004310 inlägg Ja ursäkta att jag inte använde samma namn med jag har klassen Testtt och Klassen Mainen i samma mapp
SunixMedlem sedan juli 2004310 inlägg Jag kanske skulle tillägga att kompilera med Netbeans IDE funkar men inte i kommandotolken
Mc FettoMedlem sedan nov. 20022 355 inlägg
Sunix skrev:
Jag kanske skulle tillägga att kompilera med Netbeans IDE funkar men inte i kommandotolken
Borde vara någon importering som inte är inkluderad eller namespace... posta lite mer kod! :)
SunixMedlem sedan juli 2004310 inlägg Här kommer Testtt.java
import java.lang.*;
import java.io.*;
public class Testtt
{
private String namn;
}
här kommer Mainen.java
import java.lang.*;
import java.io.*;
public class Mainen
{
public static void main(String[] arg)
{
Testtt kalle = new Testtt();
//kalle.skriv();
}
}
SunixMedlem sedan juli 2004310 inlägg Jag har gjort detta exempel för att testa med
Kör du
javac Testtt.java Mainen.java
?
PS. Du behöver inte importera java.lang eftersom man alltid har tillgång till det paketet.
SunixMedlem sedan juli 2004310 inlägg Hmm varför måste jag javac båda filerna samtidigt?? Det behöver jag inte hemma ?!??!??!
Nu fungerar det ?!??!??!??!
spangoMedlem sedan juni 20008 205 inlägg Problemet är att classpathen inte har . i sig. Lägg till ;. (semikolon och punkt) efter den.
Kompilatorn kompilerar bara de klasser du specificerar, inte de du refererar till i koden. Kanske hade du kompilerat den andra klassen hemma vid ett annat tillfälle?
SunixMedlem sedan juli 2004310 inlägg ?? Hur menar du och varför funkar det hemma men inte på jobbet ????
Mc FettoMedlem sedan nov. 20022 355 inlägg för din ide hemma löser detta! :)
aasahMedlem sedan mars 20034 471 inlägg
Sunix skrev:
?? Hur menar du och varför funkar det hemma men inte på jobbet ????
Jo, om det gick till så här:
Hemma skriver du Testtt.java. Kompilerar filen. Sedan skriver du Main.java. Kompilerar. Kör. Då funkar det, för när du redan har kompilerat Testtt en gång (och inte ändrat i den senare), så finns filen Testtt.class som används av Main.class redan.
På jobbet lägger du in dina färdiga filer Testtt.java och Main.java. Sedan kompilerar du Main.java enbart. Nu får du felmeddelanden för filen Testtt.class (den kompilerade filen) saknas eftersom Testtt.java aldrig kompilerades.
Fast om det gick till så måste du ha fått kompileringsfel (på jobbet) vilka klagade på att den inte hittade Testtt.
Om du lägger varje programmeringsprojekt för sig i en undermapp, så kan man komma ifrån problemet med att fundera över vilka filer som ska kompileras nu (dvs vilka man ändrat i sen sist) genom att skriva:
javac *.java
Då kompileras alla java-filer. Det vill man ju inte jämt, men när man vill det är det behändigare än att rabbla upp alla och man missar ingen.
*****
Förstår att det är testfiler, men annars: du vet väl att du kan ha main i samma klass som du instansierar? :q
ViktorMedlem sedan aug. 20021 752 inlägg
juventus1 skrev:
Kompilatorn kompilerar bara de klasser du specificerar, inte de du refererar till i koden. Kanske hade du kompilerat den andra klassen hemma vid ett annat tillfälle?
Det stämmer inte. Javac kompilerar alla filer som den hittar. I detta fall kompilerades bara den första filen eftersom, som spango sa, . (current directory) saknades i classpathen.
Ett väldigt hett tips är att alltid lägga till . i classpathen, det hjälper vid många problem, framförallt "Main not found" fel vid körning.
/Viktor
SunixMedlem sedan juli 2004310 inlägg aasah- Jag har gjort samma sak hemma som på jobbet. Skapat testtt och kompilerat och sedan mainen och kompilerat men det funkar inte på jobbet ?????????????
Nu har jag testat hemma igen och det funkar fint fint!! ????? Himmla märkligt?!?!?!
. i classpathen ?? hmm nu tänker jag miljövariabler i Windows, classpath eller ??
ViktorMedlem sedan aug. 20021 752 inlägg Japp, miljövariabeln CLASSPATH.
/Viktor
Borde du inte använda package eller import för att få Mainen att veta om Tesst?
SunixMedlem sedan juli 2004310 inlägg . i classpath funkar fint !! Tack!