繁体   English   中英

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

[英]Reading image files from computer in a Java program via shell script

我有一个Java程序,该程序读取图像文件(.jpg,.bmp,.png),并使用聚类算法在该文件上创建索引。 但问题是,每次我有时间明确给出该图像文件,这是将被索引的名字。 我想要的是一个代码,该代码将自动扫描Linux系统中存在的所有映像并将它们编入索引。 我发现通过shell脚本有可能,但仍然无法实现。

据我了解,您想通过Java程序执行* .sh脚本,而该程序又会循环访问文件夹中的某些文件?

您是否尝试过以下方法:

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();
}

这仅给出了一个大概的想法,您需要做什么,但要点

您可以使用find并将其输出通过管道传递到您的程序:

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

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

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

find / ...

更好的解决方案(不是太难实现)是从程序中以平台无关的方式搜索文件,并仅提供一个起始路径。 这是一个很好的解决方案 ,您只需要为文件类型(jpg,png,bmp)应用过滤器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM