我继承了一个提取作业程序,它是一个连接到数据库并从Unix shell脚本生成文件的Java程序。有时,我可以看到Java程序被异常终止,并通过压缩解压缩开始执行Unix脚本的其余部分。这导致了许多协调问题。 代码的结构如下: INSTANCE_NAME=1
PROCESS_NAME=benefitpayment
cd utils
FAIL=0
sh benefitpaymentprocesswithdates.sh $PROCESS_NAME $INSTANCE_NUMBER $1 $2
for job in $dPidLst
do
wait $job || let "FAIL+=
我希望在已从Python调用的shell脚本中获得退出状态集。
代码如下
Python脚本
result = os.system("./compile_cmd.sh")
print result
文件compile_cmd.sh
javac @source.txt
# I do some code here to get the number of compilation errors
if [$error1 -e 0 ]
then
echo "\n********** Java compilation successful **********"
exit 0
我有一个shell脚本,它在opensuse linux下运行,它启动一个java应用程序(在jar下),该脚本是:
#!/bin/sh
#export JAVA_HOME=/usr/local/java
#PATH=/usr/local/java/bin:${PATH}
#---------------------------------#
# dynamically build the classpath #
#---------------------------------#
THE_CLASSPATH=
for i in `ls ./lib/*.jar`
do
THE_CLA
我正在使用类和类从java执行一个.exe文件。为了解释我正在做的事情:
builder = new ProcessBuilder(commands);
builder.redirectErrorStream(true);
Process process = builder.start();
process.waitFor();
我只想知道,"waitFor()“要等多久?它是在等待我的.exe被执行,还是在等待它的执行完成?
我的.exe是一个编译好的AutoIt脚本。这意味着,可能会有像鼠标移动这样的交互,这需要一些时间。因此,我需要知道我的Java代码是在调用.exe之后
使用,我想知道它如何在无限循环中写入/读取正在等待控制台输入的进程,以及如何使用其控制台out进行响应?
我认为描述这一点最简单的方法是使用Python脚本:
while(True):
javaSaid = raw_input("Hey Java, Say Something: ") ##wait for input from java
print "Python Heard Java Say: " +str(javaSaid) ##java needs to be able to get this output
注意:多次执行python进程是
我想给sudo权限,在执行脚本时不会询问密码。我面临的问题是,在运行脚本时,我必须提供进程ID作为参数。我在visudo中尝试了以下输入,但它失败了,并且没有显示执行该命令的权限:
user ALL = (root) NOPASSWD: /usr/java/jdk1.7.0_25/bin/jstack 21580
我也试过了:
user ALL = (root) NOPASSWD: /usr/java/jdk1.7.0_25/bin/jstack
jstack是要执行的脚本,21580是java的进程ID,它在重新启动服务时会随机更改。
但它不起作用。有人能帮我吗?
我有一个Java应用程序,它调用tcsh脚本,而tcsh脚本又调用同一目录中的perl脚本。如果我通过输入"runPerlScript.sh“从命令运行这个脚本,它完全可以正常工作,并生成几个应该生成的输出文件。但是,如果我使用以下代码从Java调用脚本:
String[] runCmd = {"/bin/tcsh","-c","/filepath/runPerlScript.sh"};
Process run = Runtime.getRuntime().exec(runCmd);
BufferedReade