我的运行脚本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登录并运行脚本时,它运行正常。可能有什么不对?
答案 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的会话中运行远程程序。