要从Java调用linux shell命令并在其上循环吗

要从Java调用linux shell命令并在其上循环吗,linux,shell,loops,imagemagick,Linux,Shell,Loops,Imagemagick,任务:我有一组名为.rgb格式的图像,我想将它们转换为.jpeg格式 我没有使用imagemagick手动转换它们(“convert-size img001.rgb img001.jpeg”),而是尝试编写一个java程序来为我实现这一点 我在一台linux机器上工作 问题:我的程序仅将第一个.rgb图像转换为.jpeg,但完全忽略循环命令p=Runtime.getRuntime().exec(cmd1) 公共类RbgConvertor{ 公共静态void main(字符串[]args)引发IO

任务:我有一组名为.rgb格式的图像,我想将它们转换为.jpeg格式

我没有使用imagemagick手动转换它们(“convert-size img001.rgb img001.jpeg”),而是尝试编写一个java程序来为我实现这一点

我在一台linux机器上工作

问题:我的程序仅将第一个.rgb图像转换为.jpeg,但完全忽略循环命令
p=Runtime.getRuntime().exec(cmd1)

公共类RbgConvertor{
公共静态void main(字符串[]args)引发IOException{
int n=Integer.parseInt(args[0]);//图片数量
字符串size=“1024x1024”;//图像大小
String Path=“/home/nox/grbcode0000/”;//图像目录
进程p;//为“运行时”生成进程
//我使用for循环,因为我有大约100个.rbg,

对于(int i=0;i这实际上是bash的一个作业:

#!/bin/bash
for x in img????.rgb; do
    convert -size 1024x1024 "$x" "${x%.rgb}.jpg"
done

这实际上是bash的工作:

#!/bin/bash
for x in img????.rgb; do
    convert -size 1024x1024 "$x" "${x%.rgb}.jpg"
done

真的吗,一个Java程序?可以在命令行的一行中编写吗?@Kerrek SB.是的,现在..在我学习Java的过程中,我想看看如何从代码中调用外部程序可能会很有趣。其次,我有数百个.grb文件要转换,但我真的不知道如何使用onl来实现命令行上只有一行,因此需要一个程序(当然我愿意接受聪明的建议!)请发布您的实际情况,我几乎可以肯定我们可以找到Bash oneliner。学习如何编程是一件好事,但学习如何非常不优雅地解决非常简单的事情不是:-)真的吗,一个Java程序?可以在命令行的一行中编写吗?@Kerrek SB.是的,现在..在我学习Java的过程中,我想看看如何从代码中调用外部程序可能会很有趣。其次,我有数百个.grb文件要转换,但我真的不知道如何使用onl来实现y命令行上的一行,因此需要一个程序(当然我愿意接受聪明的建议!)请发布您的实际情况,我几乎可以肯定我们可以找到Bash oneliner。学习如何编程是一件好事,但学习如何非常不雅观地解决非常简单的问题不是:-)+1。值得一提的是,您可以在Bash上键入一行,而无需编写文件,以防OP感到害怕。在这种情况下,这并不重要,但习惯于在bash变量周围放置
,以防其中有空格或其他内容。在这种情况下,通过适当的转义,您甚至可以自动将
img 01.rgb
转换为
img 01.jpg
,而无需任何更改。无
“”
这将是一片混乱。+1.值得一提的是,如果OP感到害怕,您可以在Bash的一行中键入此内容,而无需编写文件。在这种情况下,这并不重要,但要习惯于使用
“”
在您的bash变量周围的case中有一个空格或其他东西。在这种情况下,通过适当的转义,您甚至可以自动将
img 01.rgb
转换为
img 01.jpg
,而不做任何更改。没有
这将是一个混乱。