通过shell脚本在Java程序中从计算机读取图像文件

时间:2012-03-20 14:55:31

标签: java linux image shell

我有一个读取图像文件(.jpg,.bmp,.png)的Java程序,并使用聚类算法在该文件上创建索引。但问题是,每次我必须明确地给出该图像文件的名称,该文件将被索引。我想要的是一个代码,它将自动扫描Linux系统中存在的所有图像并对其进行索引。我发现它可以通过shell脚本但仍然没有得到它。

2 个答案:

答案 0 :(得分:0)

根据我的理解,你想通过java程序执行一个* .sh脚本,而java程序又循环一个文件夹中的某些文件?

你有没有试过这样的事情:

public void runCmd() throws IOException, InterruptedException {
    String cmd = "/home_dir/./my_shell_script.sh";
    Runtime run = Runtime.getRuntime();
    Process pr = run.exec(cmd);
    pr.waitFor();
}

这只是粗略地了解你需要做什么,但你得到了要点

答案 1 :(得分:0)

您可以使用find,并将其输出传递给您的程序:

find \( -name "*.jpg" -or -name "*.png" \) -printf "%h/%f\n" | java YourProgram

从stdin读取文件名(包括路径)(假设它们都不包含换行符)。

对于整个文件系统,您将从根目录开始:

find / ...

更好的解决方案,并不是太难实现,将以平台中立的方式从您的程序中搜索文件,并且只给它一个起始路径。 Here is a good solution,您只需要为文件类型(jpg,png,bmp)应用过滤器。