Jag använder JCreator för att kompilera & köra denna kod:
import javax.comm.*;
import java.util.*;
class CommTest
{
private SerialPort serialPort;
public static void main(String[] args)
{
System.out.println("Looking up available ports!");
printPorts();
}
public static void printPorts()
{
Enumeration portList;
// hämta lista med portar
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements())
{
// hämta nästa port
CommPortIdentifier portId = (CommPortIdentifier)portList.nextElement();
System.out.println("Port: " + portId.getName());
}
}
}
Det fungerar utmärkt.. COMportar hittas å så som det är meningen. Men när jag kör i ett CMDfönster så skiter det sig.. NoClassDefFoundError: javax/comm/ComPortIdentifier..
Har provat att klistra in den default class path som anges i JCreator under Configure/Options/JDK Profiles i path i miljövariablerna för min dator...
Någon som vet?
Hur ser classpathen ut om du skriver ut den från terminal?
det enda som händer är att %CLASSPATH% skrivs en gång :/
Det enda jag gjort är att jag lagt till i Path i Miljövariabler: C:\j2sdk1.4.2_02\bin;
I installationsanvisningarna för javax.comm stod det att jag inte skulle ändra classpathen..
För att de/det extra libbet ska bli laddat måste du lägga med det i classpathen. Så innan du kör ditt program lägger du in sökvägen till libbet i stil med:
set CLASSPATH=sökväg-till-din-jar
Finns mer att läsa om classpath här
http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/classpath.html
Du får skilja på classpath och path. classpath används för att ange var jvmen kan ladda klasser ifrån och vanliga pathen används för att ange var binärer såsom java, javac, javaw osv finns.
men är det inte konstigt att man kan kompilera den alls då?
spangoMedlem sedan juni 20008 205 inlägg Kompilerar du från JCreator? Skulle kanske gissa att den då i såna fall fixar classpathen åt dig.
Den går att kompilara i kommandoprompten också lustigt nog... Då skulle ju jag tro att det är nåt fel på paketet som importeras.. Men då det ju funkar i JCreator.. Så då verkar det ju helt =)
hmm....
Är det nån som har ett förslag?
Man ska alltså inte ändra classpathen enligt anvisningarna.. (men vad vet Sun??)
Varför kan man kompilera men inte köra?
som sagt så fungerar det om man försöker köra det i en editor, men man kan "bara" kompilera i kommandoprompten..
echo %CLASSPATH% returnerar en tom sträng (eller nåt)
kör windowx XP btw
jag fixade det själv... visade sig att den finns ett ställe till man bör lägga dessa extra filer som javax.comm innebär.
I alla beskrivningar står det att det enda man behöver göra är att lägga medföljande filer i var sin mapp i typ C:\j2sdk1.4.2_02\jre.....
Av någon anledning skulle man även lägga dem i motsvarande: C:\Program\Java\j2re1.4.2_02
Kunde de inte kläckt ur sig det tidigare?
Efter min "research" verkar det som att den allmänna uppfattningen om just javax.comm är att den är skriven av en efterbliven apa. (inget ont menat mot aporna)