[英]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.