之前我使用过cshell / tcshell而不是转向python。
现在我要将所有shell脚本,gui,数据库,网页集成在一起。 Python在大多数作品中表现都很出色,但它在GUI,一般性能和第三部分库方面相对较弱。
所以我将尝试java作为我的主要开发语言。它擅长shell交互式编程,过程控制等等吗?
非常感谢。
答案 0 :(得分:3)
如果您想将Java平台用作脚本语言,请查看Groovy。
答案 1 :(得分:3)
Java本身可能不是最好的shell语言,因为启动时间较慢,缺少与操作系统一起使用的内置库,命令和文件(我的意思是,甚至没有办法复制文件) Java没有求助于创建两个输入和输出流并管道数据,哎呀!)。
然而!有很多基于JVM的语言,如JRuby(ruby),Rhino(javascript),Jython(python),Groovy或Grash,Bean-shell等,它们像shell语言一样工作,可以运行其他Java-书面计划。我建议您查看Grash,这可能正是您所需要的。
其中一些语言甚至可以预先加载JVM运行时以加速启动时间(例如,JRuby的Nailgun),这样可以解决启动时间慢的问题。另请参阅this post以使用Ruby(JRuby)作为shell语言。
答案 2 :(得分:1)
启动JVM通常很慢并且占用大量内存(与本机应用程序相比) 因此,运行经常启动和死亡的许多(并行)小应用程序(进程)并不好。 ......如果这是你的意图
答案 3 :(得分:0)
我写了jpad以允许运行java" shell脚本"和交互式片段,同时提供结果的良好可视化。这显示了我的意思:
要使用此文件作为脚本语言复制文件,您将使用: http://jpad.io/example/1I/fileio
final File file = new File("outt.csv");
Object o = new int[] {1,2,3};
JPad.writeCsv(o, file);
java.nio.file.Files.copy(file.toPath(), Paths.get("copy.csv"));
您也可以从命令行运行:
> more fileio.jpad
final File file = new File("outt.csv");
Object o = new int[] {1,2,3};
JPad.writeCsv(o, file);
java.nio.file.Files.copy(file.toPath(), Paths.get("copy.csv"));
> jpad fileio.jpad
> dir
29/04/2017 13:30 <DIR> .
29/04/2017 13:30 <DIR> ..
29/04/2017 13:30 16 copy.csv
29/04/2017 13:30 160 fileio.jpad
29/04/2017 13:30 16 outt.csv