【问题标题】:open a folder using java program使用java程序打开一个文件夹
【发布时间】:2014-08-13 17:22:31
【问题描述】:

我需要打开一个目录(探索文件夹)

String path="/home/hp/Documents";

我试图通过这个打开一个目录,

Desktop.getDesktop().open(new File(path));

这在 Windows 中运行良好,但在 ubuntu 中显示

java.io.IOException: Failed to show URI:file:/home/hp/Downloads/drawable/

当我使用时,

Runtime runTime = Runtime.getRuntime();
Process process = runTime.exec(path);

它说,

Cannot run program "/home/hp/Downloads": java.io.IOException: error=13, Permission denied

【问题讨论】:

  • Ubantu 无法通过“/”字符读取路径。您可以使用 File.seperator 在所有环境中工作。
  • 不,它确实使用“/”字符。
  • 您能否澄清一下:您已将 path 设置为“/home/hp/Documents”,但错误与“/home/hp/Downloads...”有关。你能提供所有的相关代码吗……不只是几行。
  • /home/hp/Downloads 是一个文件夹,而不是可执行文件。所以你不能通过运行时运行它。 Runtime#exec 需要一个可执行程序。
  • 谢谢你。你能告诉我通过我的程序打开文件夹的方法吗

标签: java file-permissions permission-denied


【解决方案1】:

就像 kailash gaur 在 cmets 中所说,使用 File.separator 代替 / 应该可以跨平台工作。

【讨论】:

  • path = "/home/hp/Downloads" 那么我应该如何使用文件分隔符
  • path = File.separator+"home"+File.separator+"hp"+File.separator+"Downloads"
  • 它仍然不起作用。它说,无法运行程序“/home/hp/Downloads”:java.io.IOException: error=13, Permission denied at java.lang.ProcessBuilder.start (ProcessBuilder.java:488) 在 java.lang.Runtime.exec(Runtime.java:612) 在 java.lang.Runtime.exec(Runtime.java:450) 在 java.lang.Runtime.exec(Runtime.java:第347章)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-03
  • 1970-01-01
  • 2016-11-15
  • 1970-01-01
  • 2013-06-29
相关资源
最近更新 更多