Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
使用java和shell脚本支持GUI模式/CLI模式切换

作者:未知 来源:月光软件站 加入时间:2005-5-13 月光软件站

在Unix / Linux系统中,使用Java开发GUI程序,最常见的问题就是图形界面的可用性问题。编程人员通常希望将GUI界面显示给用户。但是,在Unix世界,并不是总能获得GUI (尤其是X-Windows)的支持,具体原因可能包括以下几点:

1. DISPLAY变量未设置或设置错误

2. 客户端不支持X-Windows (例如Windows的Telnet)

3. 未能有足够的权限 (xhost未给予足够权限)

为了解决这个问题,可以通过Unix的一些工具(Shell及xdpyinfo),自由切换GUI界面及CLI界面,达到尽量使用GUI界面,在不能显示GUI界面的情况下,显示CLI界面的目的。更多文章,请访问www.javashelf.com.cn
以下的bash代码显示了xdpyinfo的使用方法。

echo $* | egrep -e "\-nodisplay" > /dev/null
if [ $? -eq 0 ]; then
  unset DISPLAY
  extra_jvm_options="-Djava.awt.headless=true $extra_jvm_options"
  export extra_jvm_options
else
  xdpyinfo > /dev/null 2>&1
  if [ $? -ne 0 ]; then
    unset DISPLAY
    extra_jvm_options="-Djava.awt.headless=true $extra_jvm_options"
    export extra_jvm_options
    save_args=$*
    set -- "$save_args -nodisplay"
  fi
fi

java MY_CLASS $save_args

上面的例子中,xdpyinfo用来检测当前环境是否支持X-Windows。如果当前环境支持X-Windows,xdpyinfo将返回当前的X-Windows的配置情况。如果当前环境不支持X-Windows,xdpyinfo将报错。通过检测xdpyinfo的结果即可得知当前的环境是否支持X-Windows. 如果不支持X-Windows,则可以向传入java的参数列表中加入-nodisplay参数。这样,只要再在java程序中,检测java传入参数是否有-nodisplay参数,即可切换是否使用GUI界面或CLI界面。



相关文章

相关软件