今天大家讨论说发现 jdk 1.6 安装目录下有个 jrunscript.exe, 不知道是干啥的, 在 dos 下运行一下看看:
d:\jee5training\jdk1.6.0\bin>jrunscript.exe
js> var a = 2;
js> print(a)
2js> println(a)
2
js>
js> alert(a)
script error: sun.org.mozilla.javascript.internal.ecmaerror: referenceerror: "al
ert" is not defined. (<stdin>#1) in <stdin> at line number 1
js> new jframe("a").show();
script error: sun.org.mozilla.javascript.internal.ecmaerror: referenceerror: "jf
rame" is not defined. (<stdin>#1) in <stdin> at line number 1
js> new javax.swing.jframe("a").show();
原来是 js 解释器, 注意不在浏览器中运行, 所以 alert 这样的方法是不能用的。 但是可以调用 java 类, 例如 gui 库。
这样的 dos 命令解释器应用我们也可以用 java 来做, 例如下面的代码就实现了一个提示 commmand: 的命令行应用:
public class customcmd
{
public static void main(string[] args) throws ioexception
{
bufferedreader cmdin = new bufferedreader(new inputstreamreader(system.in));
system.out.println("enter \"quit\" to quit this program.");
for(;;) {
system.out.print("command:");
string cmd = cmdin.readline();
if(cmd.equalsignorecase("quit")) break;// quit the program
system.out.println("your input: " + cmd.touppercase());
// process the command
}
}
}
其他的一些命令行小代码:
命令行形式下在同一行上反复输出文本使用 system.out.print("…… \r");// \r表示回车, \n表示换行
分析带选项的命令行输入
如: -s <server> -p <port> -m <message>
public static void main(string args[]) {
// parse the command line options
for(int i = 0; i < args.length - 1; i++) {
if(args[i].equalsignorecase("-s")) {
string server = args[i + 1];
}else if(args[i].equalsignorecase("-p")) {
string port = args[i + 1];
}
...// other parameters
}
相关资料: java 6 的默认 js 脚本引擎是 rhino, 是 mozilla 开源的 js 引擎, 基于 java, 我们可以下载其单独的包用在 jdk 1.4 或者 1.5. 这样应用可以将一些业务逻辑代码用 js 实现