我正在寻找一种方法来检查文件是否可以用Java 1.5执行。
我找到了SecurityManager.checkExec,但我认为这没有帮助...
我目前在Linux上,但这也需要适用于Windows。
任何帮助将不胜感激,谢谢。
答案 0 :(得分:0)
SecurityManager.checkExec
实际检查其他内容,它检查您的JVM是否具有足够的权限来启动可执行文件。
您希望java.nio.file.Files.isExecutable(...)
查看该文件是否被视为“可执行”。
仅在Java 1.7中可用。对于1.5及更高版本,您通常会构造一个ProcessBuilder
类,并在执行文件失败时捕获异常。对于1.5之前的版本,您将使用Runtime.exec(...)
并捕获异常以确定该文件不可执行。
答案 1 :(得分:0)
我有类似的问题。
如果你不介意做很多工作,你可以尝试阅读可执行文件的“神奇数字”。这些是存储在文件开头的值,可以告诉您它是什么类型的文件。
查看http://www.garykessler.net/library/magic.html,其中列出了各种文件格式的“神奇数字”,包括可执行文件。
如果您只需要在两个平台上进行操作,那应该不会那么难。
如果有人能告诉我为什么这是一个非常糟糕的主意,我会感兴趣。