2010-11-02 12 views
0

Mon script exécuté START.BATProblème exécution Java sur CentOS

java -server -Xmx1024m -Xbootclasspath/p:"/Java/Server Applet/bin" applet.Server 

Quand je l'exécute du terminal SSH ./start.bat

Je reçois ceci:

Exception in thread "main" java.lang.NoClassDefFoundError: applet/Server 
Caused by: java.lang.ClassNotFoundException: applet.Server 
     at java.net.URLClassLoader$1.run(Unknown Source) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
. Program will exit.in class: applet.Server 

Pourtant, lorsque Je me connecte en utilisant vncviewer, et exécute le script, il fonctionne bien. Quel pourrait être le problème?

Répondre

2

Il erreur semble indiquer une erreur de chemin de classe, Java ne peut pas trouver ce fichier:

/Java/Serveur Applet/bin/applet/Server.class

Et comme Chochos writes, vous ne peut pas utiliser de trucs graphiques (awt, swing, applet) dans ce programme si vous êtes connecté par SSH. Bien que ce n'est pas ce que cette erreur semble se plaindre.

Vous pouvez utiliser certaines fonctions graphiques en mode SSH si vous exécutez Java en mode sans tête en ajoutant le paramètre de ligne de commande suivante:

-Djava.awt.headless=true

Mais cela ne donne pas un accès complet graphique:

Sun Developer network: Using Headless Mode in the Java SE Platform:

de nombreuses méthodes dans l'un java.awt.Toolkit Les classes nd java.awt.GraphicsEnvironment, à l'exception des polices, de l'imagerie et de l'impression, nécessitent la disponibilité d'un périphérique d'affichage, d'un clavier et d'une souris. Mais certaines classes, telles que Canvas ou Panel, peuvent être exécutées en mode sans tête. La prise en charge du mode sans tête est disponible depuis la plate-forme J2SE 1.4

1

Vous devez utiliser ssh -X pour permettre à la session distante d'utiliser votre serveur X. Avec VNC vous utilisez l'environnement graphique local (du serveur distant) donc pas de problème, mais avec ssh vous exécutez un programme distant dans une session sans interface graphique.