-
Runtime调用shell文件执行外部命令,传10个位置参数进去,在执行shell时,判断出参数总数不是10,执行退出,求解答5
cm=/usr/local/bea/watool/tact/share/rootdir/system/expendableparts/uploadComm.sh
/usr/local/bea/watool/tact/share/rootdir/system/expendableparts/91010_888888_20110822134252_mytest.csv
watool
tactclient
tact
/usr/local/bea/watool/tact/share/rootdir/system/expendableparts /usr/local/bea/watool/tact/share/rootdir/system/expendableparts/log
91010_888888_20110822134252
91010_888888_20110822134252_expendpartsload.log
91010_888888_20110822134252_expendpartsload_bad.log
888888
这是shell文件以及它的十个位置参数
Runtime r = Runtime.getRuntime();
Process p = r.exec(cm);
p.waitFor();
return p.exitValue();
下面一段是shell文件里面的语句,
if [ $# -ne 10 ]
then
exit 1;
fi
执行结果是1,我传进去10个参数,怎么他还执行成功,求解答。
问题补充:myali88 写道你直接执行shell是否返回 预期结果呢?
你把sh里面不等于10改小来测试一下,看看是否是参数传的问题。我直接使用-ne 1来测试是正常返回。
把你执行shell的完整代码贴上了。
代码太长,我把最前面的展示出来,看一下是前面设置错误吗,
LANG=zh.GBK
NLS_LANG="Simplified Chinese"
ORA_NLG33=$ORACLE_HOME/ocommon/nls/admin/data
export LANG NLS_LANG ORA_NLS33
. /usr/local/bea/.profile
if [ $# -ne 10 ]
then
exit 1;
fi
它执行到不等于10时就退出了,后面的代码比较多且调用了oracle的sqlplus与sqlldr等数据库操作
问题补充:myali88 写道你直接执行shell是否返回 预期结果呢?
你把sh里面不等于10改小来测试一下,看看是否是参数传的问题。我直接使用-ne 1来测试是正常返回。
把你执行shell的完整代码贴上了。
且unix机器上没有.profile文件,这有没有影响2011年8月22日 21:43
2个答案 按时间排序 按投票排序
-
采纳的答案
引用且unix机器上没有.profile文件,这有没有影响
没有的话,前面可以加一个判断再执行。
这个问题你要分两步调,第一步,确保你的shell脚步本事是正确的,你也没告诉我到底单独执行脚步是否正常;第二步,再考虑是否java程序调用shell出错。
引用它执行到不等于10时就退出了,后面的代码比较多且调用了oracle的sqlplus与sqlldr等数据库操作
这个是指直接执行shell吗?如果是这样,那你的shell本事就不符合你的预期。这样的话,你需要确定前面哪里有错?这个比较难调了,你要仔细看看。比如:
LANG=zh.GBK 这个写法也不太合适,一般都是:LANG=zh_CN.GBK
ORA_NLG33=$ORACLE_HOME/ocommon/nls/admin/data ,这里的ORACLE_HOME前面是否定义了
. /usr/local/bea/.profile 这里增加判断,
if [ -x /usr/local/bea/.profile]; then
. /usr/local/bea/.profile
fi
类似这样的都有可能导致执行出错,你可以在你认为可能出错的地方用“echo”来打印,可以采用二分法,快速定位错误位子。2011年8月22日 23:14
-
你直接执行shell是否返回 预期结果呢?
你把sh里面不等于10改小来测试一下,看看是否是参数传的问题。我直接使用-ne 1来测试是正常返回。
把你执行shell的完整代码贴上了。2011年8月22日 22:38
相关推荐
使用runtime, 实现java客户端多次调用linux命令或者shell脚本,并返回对应结果或信息
在linux环境中,这三个用户都可以直接在任意目录下执行该shell脚本,可是在java代码中调用shell脚本时,报了如下4个错误: 1、sqlldr: command not found 2、sqlplus: command not found 3、0750: You may need to ...
利用Runtime.execute方法,我们可以在Java程序中运行Linux的Shell脚本,或者执行其他程序
也有分析认为,谷歌并不想做一个简单的手机终端制造商或者软件平台开发商,而意在一统传统互联网和 移 动互联网。----------------------------------- Android 编程基础 4 Android Android Android Android 手机新...
2005-10-21 15:30 2624 1221 易语言模块大全\DOS命令模块.ec 2002-07-28 03:41 1551 538 易语言模块大全\EC.EC 2005-12-30 21:58 43618 8803 易语言模块大全\EdbServer1.0客户端.ec 2006-05-22 07:03 30865 7639 ...
取文件时 间.ec 取文件版本信息.ec 取文件目录列表.ec 取文件相关联的图标.ec 取文件行数.ec 取文本行数.ec 取 易模块信息.ec 取易模块信息2005.ec 取歌词.ec 取汇编指令长度.ec 取汉字代码.ec 取汉字全拼音模 块.ec...
2005-10-21 15:30 2624 1221 易语言模块大全\DOS命令模块.ec 2002-07-28 03:41 1551 538 易语言模块大全\EC.EC 2005-12-30 21:58 43618 8803 易语言模块大全\EdbServer1.0客户端.ec 2006-05-22 07:03 30865 7639 ...
将私钥JSON文件保存在计算机上的某个位置。 您可以在系统中全局设置GOOGLE_APPLICATION_CREDENTIALS环境变量,也可以在运行其他命令之前将其导出到命令外壳中。 在functions文件夹中运行firebase functions:...
2005-10-21 15:30 2624 1221 易语言模块大全\DOS命令模块.ec 2002-07-28 03:41 1551 538 易语言模块大全\EC.EC 2005-12-30 21:58 43618 8803 易语言模块大全\EdbServer1.0客户端.ec 2006-05-22 07:03 30865 7639 ...
调用runtime来执行注册表查询 private static final String PERSONAL_FOLDER_CMD = REGQUERY_UTIL + "\"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\" + "Explorer\\Shell Folders\" /v Personal"; ...
Q:我看到了两个可执行文件,应该怎样使用它们? A:直接运行ntleac.exe,或者为它建立一个快捷方式,并在命令行的末尾填上目标程序的全路径名。关于参数的详细说明请参考附录,在新的版本中您还可以使用名为...
判断XP外观支持文件是否存在.ec 判断字符模块.ec 判断数据库.ec 判断进程是否存在的模块.ec 到文本.ec 办公组件密码管理模块.ec 功能集一模块 1.0.ec 功能集一模块.ec 加入好友.ec 加密.ec 加密解密文本....
执行以下该指令://获取root权限su//更改adb调试模式为tcp,并指定5555端口setprop service.adb.tcp.port 5555//停止adbd服务器stop adbd//启动adbd服务器start adbd###java层面调用shelljava提供了调用系统层级的命令...
取文件时 间.ec 取文件版本信息.ec 取文件目录列表.ec 取文件相关联的图标.ec 取文件行数.ec 取文本行数.ec 取 易模块信息.ec 取易模块信息2005.ec 取歌词.ec 取汇编指令长度.ec 取汉字代码.ec 取汉字全拼音模 块.ec...
调用外部命令.ec 调整窗口大小.ec 定时提醒1.1.ec 动画窗体1.3.ec 动态调用DLL函数.ec 动态调整分辩率.ec 动态加载菜单模块1.0版.ec 动态显示窗口.ec 读取DBF数据.ec 读取超级列表框模块 1.0.ec 读取超级...
调用外部命令.ec 调整窗口大小.ec 定时提醒1.1.ec 动画窗体1.3.ec 动态调用DLL函数.ec 动态调整分辩率.ec 动态加载菜单模块1.0版.ec 动态显示窗口.ec 读取DBF数据.ec 读取超级列表框模块 1.0.ec 读取超级...
调用外部命令.ec 调整窗口大小.ec 定时提醒1.1.ec 动画窗体1.3.ec 动态调用DLL函数.ec 动态调整分辩率.ec 动态加载菜单模块1.0版.ec 动态显示窗口.ec 读取DBF数据.ec 读取超级列表框模块 1.0.ec 读取超级...