正在运行将在Linux Web服务器上运行的应用程序中,以从某个目录中删除日志,但是我一直收到FileNotFound异常。
这是代码:
public static void deleteLOG() {
try {
ProcessBuilder probuilder = new ProcessBuilder("find /home/root/multicraft/servers/ -name '*.log' -delete");
probuilder.start();
} catch (IOException e) {
e.printStackTrace();
}
}
而且例外
java.io.IOException: Cannot run program "find . -name '*CoreData*' -delete" (in directory "/home/root/multicraft/servers"): error=2, No such file or directory
at java.lang.ProcessBuilder.start(Unknown Source)
at com.mcprohosting.com.nodecleanup.Preprocess.deleteCoreData(Preprocess.java:23)
at com.mcprohosting.com.nodecleanup.handlers.CleanupHandler.executeCleanup(CleanupHandler.java:36)
at com.mcprohosting.com.main.NodeCleaner.init(NodeCleaner.java:29)
at com.mcprohosting.com.main.NodeCleaner.main(NodeCleaner.java:25)
Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
... 5 more
但是,命令cd / home / root / multicraft / servers可以很好地工作。
我也尝试过:
ProcessBuilder probuilder = new ProcessBuilder("find . -name '*Backup*' -delete");
probuilder.directory(new File("/home/root/multicraft/servers/"));
probuilder.start();
所述ProcessBuilder
构造函数接收多个串-无论是作为一个List<String>
或作为参数,每一种类型的可变数量String
:
http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/ProcessBuilder.html#ProcessBuilder(java.util.List)
http://docs.oracle.com/javase/1.5。 0 / docs / api / java / lang /
ProcessBuilder.html#ProcessBuilder(java.lang.String
…)
您遇到了麻烦,因为您将整个命令作为一个字符串传递了,导致JVM查找名为“ find /home/root/multicraft/servers/ -name '*.log' -delete
”而不是的程序find
。
您必须将长命令分成多个部分。如:
ProcessBuilder pb = new ProcessBuilder("find", ".", "-name", "'*CoreData*"...);
问题内容: 我正在尝试在Spring中制作我的第一个bean,但是在加载上下文时遇到了问题。我在src / main / resources中有一个bean的配置XML文件。 我收到以下IOException: `Exception in thread “main” org.springframework.beans.factory.BeanDefinitionStoreException: IO
} 当我运行这段代码时(我使用的是Eclipse),我得到了堆栈跟踪: JAVA木卫一。IOException:无法运行程序“python”:CreateProcess error=2,系统找不到java指定的文件。lang.ProcessBuilder。在运行测试时启动(ProcessBuilder.java:1048)。main(RunTest.java:11)由:java引起。木卫一。IOE
我创建了一个新文件,但得到以下错误: java.io.FileNotFoundException:C:\users\xxx\ap\metadata\cb_2015-09-01_07-31-01.ini(Sistem belirtilen Dosyay ̄Bulam ̄Yor)在java.io.fileInputStream.Open0(本机方法)在java.io.fileInputStream.Ope
问题内容: 我正在使用Java在Linux EXTREME VPS上存储图像 当我将其存储在服务器路径上时 使用以下代码读取路径 当我使用上面的代码阅读时,我得到以下异常 如何解决这个问题呢? 还有其他从Linux服务器读取文件的方法吗? 问题答案: 我认为问题在于您使用的文件路径错误。 您说您正在Linux服务器上读取文件,似乎您正在尝试在Windows计算机上读取文件。由此推断,您已将Linu
问题内容: 我正面临着这个奇怪的问题。 我正在尝试读取位于另一台计算机上的文件作为共享资源: 当我运行一个独立的应用程序(一个16行的Java文件)时,一切都很好。但是,当我尝试使用服务器“引擎”(这是一个应用程序引擎,非常类似于可以运行Java程序的Java EE Application Server)使用相同的类和相同的方法读取相同的文件时,“ FileNotFoundException”被抛
我正在尝试用单节点hadoop集群运行一个示例程序。我在运行示例程序(jar文件)时遇到一个异常。 多谢了。