求教: 如何在perl里检测一个可执行程序是否存在?

求教: 如何在perl里检测一个可执行程序是否存在?

运行环境: linux

比如,我想检测系统里是否安装过JAVA,如何在perl里检测?

我想到的一个笨办法是,在$PATH里搜索java这个程序。

但是不知道有没有更好更通常的办法?

或者执行 java, 看返回值?
写一个 hello world 然后编译、运行,我认为这样子比较靠谱。
locate java
分析回传值....
>>> 写一个 hello world 然后编译、运行,我认为这样子比较靠谱。

用JAVA写一个hello world, 然后编译运行?

感觉好麻烦
还是运行,然后查看返回值吧
try to use shell command in Perl:

QUOTE:
:~/$ which java
/usr/bin/java
:~/$ type java
java is /usr/bin/java
:~/$ type jav
bash: type: jav: not found
:~/$ which jav
:~/$ perl -le '$pgm="java"; $res=`which $pgm`; ($res) ? print 1 : print 0'

locate java你知道返回值多大不

我建议用java -version的返回值分析判断,能执行表示path里有java,而且顺便获取版本号

java -version


QUOTE:
原帖由 hdc1112 于 2008-8-6 08:18 发表
locate java你知道返回值多大不

我建议用java -v的返回值分析判断,能执行表示path里有java,而且顺便获取版本号

java -v 要有结果, 先决条件是java的path要在环境变量PATH 里面....

如果今天有个java不是安装在缺省得路径..也没有写进PATH中....

这个要不要算?

Linux的located 会把所有路径存入DB...所以这个才是最准确的....当然要定期更新他的db...