Problem att köra java program från terminalen

Här diskuteras programmering och utveckling
Medsch
Inlägg: 93
Blev medlem: 07 sep 2008, 16:08
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Problem att köra java program från terminalen

Inlägg av Medsch »

Har fått en början till en simpel chat-server i Java som använder sockets och ser ut så här:

Kod: Markera allt

public class ChatServer {
	public static void main(String[] args) throws Exception {
		ServerSocket ss = new ServerSocket(1234);
		Socket s = null;
		String text = "";
		while((s = ss.accept()) != null) {
			BufferedReader indata = new BufferedReader(new InputStreamReader(s.getInputStream()));
			while((text = indata.readLine()) != null) System.out.println(text);
			s.shutdownInput();
		}
	}
}
I Eclipse går detta utmärkt att kompilera och köra men när jag försöker köra från terminalen så funkar det att kompilera med

Kod: Markera allt

javac ChatServer.java 
men sedan när jag försöker köra

Kod: Markera allt

java ChatServer
så får jag

Kod: Markera allt

*@*-ubuntu:~/workspace/chat$ java ChatServer 
Exception in thread "main" java.lang.NoClassDefFoundError: ChatServer (wrong name: chat/ChatServer)
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
	at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: ChatServer.  Program will exit.
Jag misstänker att detta har något med CLASSPATH att göra? Just nu ger echo $CLASSPATH en tom rad bara.

Lite mer info ifall det behövs:

Kod: Markera allt

*@*-ubuntu:~$ java -version
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode)

Kod: Markera allt

*@*-ubuntu:~$ sudo update-alternatives --config java
[sudo] password for *: 
There is only one alternative in link group java: /usr/lib/jvm/java-6-sun/jre/bin/java
Nothing to configure.
Tacksam för hjälp :)
Senast redigerad av 1 Medsch, redigerad totalt 22 gånger.
Medsch
Inlägg: 93
Blev medlem: 07 sep 2008, 16:08
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Problem att köra java program från terminalen

Inlägg av Medsch »

Jag hittade felet själv ;) Var tydligen paketnamn som jag skrivit i Eclipse som strulade till det när jag körde från terminalen, så hade inget med classpath att göra...
Skriv svar

Återgå till "Programmering och webbdesign"