使用java和shell脚本支持GUI模式/CLI模式切换
来源:互联网 发布:php spl arrayaccess 编辑:程序博客网 时间:2024/06/16 04:01
在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
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界面。
- 使用java和shell脚本支持GUI模式/CLI模式切换
- 如何在Windows下开发Python:在cmd下运行Python脚本+如何使用Python Shell(command line模式和GUI模式)+如何使用Python IDE
- Python Shell(command line模式和GUI模式)区别
- Linux shell模式切换
- shell脚本和vim模式初步学习
- 一段监控cli模式下运行php十分正常运行的shell脚本
- thinkphp中使用cli模式
- 关于应用程序支持GUI和CLI界面共存一点看法!
- 如何让PHP脚本在cli模式下执行时可接受选项和值的输入
- PHP CGI 和 CLI 模式下用 `$_SERVER` 向脚本传参
- thinkphp cli 模式使用函数 使用 common
- 在shell脚本里使用Abstract Factory的设计模式
- java GUI 之 适配器模式
- Java虚拟机切换模式
- PHP CLI模式介绍及使用教程
- php命令行模式(cli)的使用(总结)
- 交互模式和脚本模式
- VxWorks ----Host Shell四种模式切换
- 对文本文件操作很好的类
- 处理时间的类
- 天天网摘——文摘_书签_网址_收藏夹
- GD图形库写了个验证码
- 生成加水印的图片类 (支持水印为图片或者文字)
- 使用java和shell脚本支持GUI模式/CLI模式切换
- 取得客户端信息
- PHP图片类,可显示多种图形报表。竖柱形图,横柱形图,画柱形图,折线图,饼状图
- 文件上传类
- 把图片存入mysql数据库
- 一个截取汉字不会出现乱码的函数
- 浅析php中实现多线程~
- 取得给定日期所在周的开始日期和结束日期
- MYSQL数据备份/恢复简易方法