有没有一种很好的方法来确定文件是否可以在Java中执行

Sin*_*son 8 java

我知道你可以打电话

Runtime.getRuntime().exec(file);
Run Code Online (Sandbox Code Playgroud)

如果它不可执行,则获得异常,但这是不安全的,因为运行可执行文件可能会产生副作用.

我想只是在Windows上检查扩展是否足够,但有没有办法可以读取*nix文件系统上的可执行位?

找出文件在OS中是否可执行的最佳方法是什么?

wja*_*ans 16

请参见java.io.File.canExecute()

  • 这可能不是,你在寻找什么,因为ist可能会为"txt"返回true (8认同)
  • 请注意,这会对目录返回true; 所以在.canExecute之前调用.isDirectory. (3认同)
  • 如果允许JVM由安全管理器执行该文件,则此方法返回true.它不保证甚至表明文件是可执行的. (3认同)
  • 干杯,我预计它会被称为isExecutable所以我开始在自动完成中输入"是". (2认同)