在CentOS上执行java时遇到问题

时间:2010-11-02 07:35:01

标签: java ssh centos

我的运行脚本start.bat

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

当我从SSH终端./start.bat

执行时

我明白了:

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

然而,当我使用vncviewer登录并运行脚本时,它运行正常。可能有什么不对?

2 个答案:

答案 0 :(得分:2)

出现错误似乎表明类路径错误,Java无法找到此文件:

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

Chochos writes一样,如果您通过SSH连接,则不能在此程序中使用任何图形(awt,swing,applet)内容。虽然这不是这个错误似乎抱怨的。

如果通过添加以下命令行参数在无头模式下运行Java,则可以在SSH模式下使用某些图形功能:

-Djava.awt.headless=true

但这并没有提供完整的图形访问权限:

  

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

     

java.awt.Toolkit和java.awt.GraphicsEnvironment类中的许多方法(字体,图像和打印除外)都需要显示设备,键盘和鼠标的可用性。但是某些类(如Canvas或Panel)可以在无头模式下执行。自J2SE 1.4平台

以来,无头模式支持已经可用

答案 1 :(得分:1)

您需要使用ssh -X让远程会话使用您的X服务器。使用VNC,您可以使用本地图形环境(远程服务器),所以没有问题,但是使用ssh,您在没有GUI的会话中运行远程程序。