Запустите файл PDF из Java
Я пытаюсь открыть файл PDF из следующего кода.
try {
String currentDir = System.getProperty("user.dir");
currentDir = currentDir+"/Report.pdf";
System.out.println("Current dir using System:" +currentDir);
if ((new File(currentDir)).exists())
{
Process p = Runtime
.getRuntime()
.exec("rundll32 url.dll,FileProtocolHandler " +currentDir);
p.waitFor();
}
else
{
System.out.println("File is not exists");
}
System.out.println("Done");
}
catch (Exception ex)
{
ex.printStackTrace();
}
Оператор печати дает мне правильный путь к файлу, т.е.
Текущий каталог с использованием System:/Users/mshariff/NetBeansProjects/javaGUIbuilding/Report.pdf
но программа выдает следующую ошибку.
java.io.IOException: Cannot run program "rundll32": error=2, No such file or directory
я использую Mac OSX
& Netbeans
,
1 ответ
Решение
Решение у вас под рукой будет работать только на Windows (rundll32
это команда Windows)
Вместо этого вы должны воспользоваться преимуществами Desktop API
Например...
public static void main(String[] args) {
try {
Desktop desktop = Desktop.getDesktop();
if (desktop.isSupported(Desktop.Action.OPEN)) {
desktop.open(new File("Your.pdf"));
} else {
System.out.println("Open is not supported");
}
} catch (IOException exp) {
exp.printStackTrace();
}
}