包装Java进程的最佳脚本语言?

时间:2011-06-14 19:53:14

标签: java scripting process

我有一个Java服务器进程,我通常在Windows批处理文件控制台或Linux Bash脚本控制台中运行。我彼此独立地管理这些脚本,我希望我有一些跨平台,更强大,更容易的东西。

除了运行java进程本身外,脚本还需要创建文件,配置文件,读/写.xml配置数据,准备数据库等。

那么,哪种脚本语言最适合这样才能使脚本跨平台?

另外,如果您听说有人做过与此类似的事情,我希望看到这个例子的链接。

5 个答案:

答案 0 :(得分:4)

编辑以实际将此短语作为答案:

只需使用Java。

是否有理由不能在Java中编写这些东西,并且只为少数非跨平台的东西提供一些不同的功能?

第二次编辑是一个反例。我的公司有一个编写跨平台Java代码的开发团队,但运行/升级它的脚本是用.SH和.BAT编写的,具体取决于它是Windows还是Unix。因此,他们在两个目标平台的最低公分母中写了两次。

答案 1 :(得分:1)

我认为Groovy将是一个很好的选择。它的语法与Java非常相似,但它比Java更简洁,特别是对于您需要在脚本中执行的操作。例如,这是一个读取文件内容的Groovy脚本:

String content = new File("/path/to/file.txt").text

就是这样!没有必要把它放在一个类中甚至编译它。只需将上面的文本放在名为Script.groovy的文件中,然后使用groovy Script.groovy从命令行调用它。

此外,由于Groovy在JVM上运行,因此不存在跨平台问题,并且您已经在运行脚本所需的所有计算机上安装了必要的运行时。

Groovy附带了一个可用于快速测试脚本的控制台。

答案 2 :(得分:0)

您还可以考虑将“脚本”内容放在Jruby脚本中,然后让它在必要时调用Java应用程序和库。那会很好用。缺点是您需要在所有服务器上维护Jruby运行时。

答案 3 :(得分:0)

如果我弄错了,请纠正我,但是如果Ant这样的事情在Java本身中有一个构建过程不是这样的话吗?我觉得如果你有一个标准化的Java构建过程为你做这些事情,你的批处理文件,bash脚本或必要的衍生物可能会简单得多。然后,IANAJDNEC(我不是Java开发人员,甚至没有关闭)。

答案 4 :(得分:0)

我们通过确保所有机器都有cygwin来做类似的事情。脚本变得更加便携。现在尝试用perl脚本替换shell脚本。

我们还将大部分功能转移到了java代码中。

如果这是关于管理环境的,我推荐jenkins farm。它有许多内置任务,您可以减少脚本工作量。其中一个主要功能是透明地在所有机器上部署jdk,然后在那里启动java任务。