beanshell能够很方便的操做Java类 java
bashshell能够亦能够很轻易的使用linux系统资源 linux
要让Java和Linux在一块儿愉悦的工做,beanshell和bashshell的相互调用,颇有必要实现 shell
beanshell调用bashshell很简单,exec就能够了 bash
而bashshell里使用beanshell却很难找到好的方案 google
google一大通,参考网上现有的方案,目前想到如下三种解决办法 spa
1,直接经过hashlang(#!)指定 java 调用 bsh.Interpreter .net
root@mo :~/tmp# cat test.bsh
#!/opt/jdk/bin/java bsh.Interpreter
print("aaa"); 资源
2, 利用系统环境变量,在 /root/.bashrc下面作以下修改 get
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/bsh_2.0b4.jar
export bsh="java bsh.Interpreter" hash
主要是最后一句,这样使用bsh直接在shell下敲 $bsh就能够了 很方便
3,利用expect,交互
root@mo :~/tmp# echo $bsh > /usr/bin/bsh
root@mo :~/tmp# chmod 777 /usr/bin/bsh
root@mo :~/tmp# cat tt
#!/usr/bin/expect
spawn bsh
expect "%"
send "print(\"a\");\r"
interact
目前想到的办法就这三个,虽然比较丑陋,但也基本能使了,先凑合着用。。
If you do better, Please submit your command here.
Thanks!