免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3624 | 回复: 15
打印 上一主题 下一主题

求教: 如何在perl里检测一个可执行程序是否存在? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-05 14:06 |只看该作者 |倒序浏览
运行环境: linux

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

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

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

或者执行 java, 看返回值?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2008-08-05 14:50 |只看该作者
写一个 hello world 然后编译、运行,我认为这样子比较靠谱。

论坛徽章:
0
3 [报告]
发表于 2008-08-05 15:05 |只看该作者

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2008-08-05 15:06 |只看该作者
locate java
分析回传值....

论坛徽章:
0
5 [报告]
发表于 2008-08-05 15:36 |只看该作者

回复 #2 flw 的帖子

>>> 写一个 hello world 然后编译、运行,我认为这样子比较靠谱。

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

论坛徽章:
0
6 [报告]
发表于 2008-08-05 15:39 |只看该作者

回复 #4 apile 的帖子

感觉好麻烦
还是运行,然后查看返回值吧

论坛徽章:
0
7 [报告]
发表于 2008-08-05 15:42 |只看该作者

回复 #1 afeiguo 的帖子

try to use shell command in Perl:
:~/$ 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'

论坛徽章:
0
8 [报告]
发表于 2008-08-06 08:18 |只看该作者
locate java你知道返回值多大不

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

[ 本帖最后由 hdc1112 于 2008-8-6 17:07 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2008-08-06 09:39 |只看该作者
java -version

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
10 [报告]
发表于 2008-08-06 09:54 |只看该作者
原帖由 hdc1112 于 2008-8-6 08:18 发表
locate java你知道返回值多大不

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


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

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

这个要不要算?

Linux的located 会把所有路径存入DB...所以这个才是最准确的....当然要定期更新他的db...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP