Discussions
Categories
- 385.5K All Categories
- 4.9K Data
- 2.5K Big Data Appliance
- 2.4K Data Science
- 453.4K Databases
- 223.2K General Database Discussions
- 3.8K Java and JavaScript in the Database
- 47 Multilingual Engine
- 606 MySQL Community Space
- 486 NoSQL Database
- 7.9K Oracle Database Express Edition (XE)
- 3.2K ORDS, SODA & JSON in the Database
- 585 SQLcl
- 4K SQL Developer Data Modeler
- 188K SQL & PL/SQL
- 21.5K SQL Developer
- 46 Data Integration
- 46 GoldenGate
- 298.4K Development
- 4 Application Development
- 20 Developer Projects
- 166 Programming Languages
- 295K Development Tools
- 150 DevOps
- 3.1K QA/Testing
- 646.7K Java
- 37 Java Learning Subscription
- 37.1K Database Connectivity
- 201 Java Community Process
- 108 Java 25
- 22.2K Java APIs
- 138.3K Java Development Tools
- 165.4K Java EE (Java Enterprise Edition)
- 22 Java Essentials
- 176 Java 8 Questions
- 86K Java Programming
- 82 Java Puzzle Ball
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 94.3K Java SE
- 13.8K Java Security
- 208 Java User Groups
- 25 JavaScript - Nashorn
- Programs
- 667 LiveLabs
- 41 Workshops
- 10.3K Software
- 6.7K Berkeley DB Family
- 3.6K JHeadstart
- 6K Other Languages
- 2.3K Chinese
- 207 Deutsche Oracle Community
- 1.1K Español
- 1.9K Japanese
- 474 Portuguese
Desktop class problem

843807
Member Posts: 46,582
The code below does nothing. No file opened, no exception thrown, no output.
What can I do to discover the problem?
It does indeed execute the desktop.open(file) line.
Using JDK 1.16.0_81
What can I do to discover the problem?
It does indeed execute the desktop.open(file) line.
Using JDK 1.16.0_81
File file = new File(pathAndFileString); // an existing text file if (Desktop.isDesktopSupported()) { Desktop desktop = Desktop.getDesktop(); if (desktop.isSupported(Desktop.Action.OPEN )) { try { desktop.open(file); } catch (IOException e1) { e1.printStackTrace(); } } else { System.out.println("Desktop.Action.OPEN not supported"); } } else { System.out.println("Desktop not supported"); }
Comments
-
I put your code into my system and it worked like a charm.
specified a PDF file - and Acrobat opened it with out a murmur.
What kind of file are you trying to open and are you sure its application is associated (and what OS?) - I am on Vista.
Rudi -
Running Win XP
Following your example, I tried a pdf file, which is obviously associated with acrobat, with the same result (ie nothing)
If I purposely misspell the file name, then I get an IllegalArgumentException saying the file doesn't exist.
So that tells me that it is finding the file (when spelled correctly), but somehow not doing anything with it.
Running the demo here:
http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/desktop_api/
the browse and mail functionality works, but not the file functionality, again same result, just nothing.
I'm running these from Eclipse. Would an IDE interfere with the Desktop? -
The code below does nothing.Your right it does nothing because it doesn't compile.
For more help create a [SSCCE (Short, Self Contained, Compilable and Executable, Example Program)|http://sscce.org], that demonstrates the incorrect behaviour. Then you can hardcode the filename to be the java source file name so everybody is testing the same code. -
package desktopdemo; import java.awt.Desktop; import java.io.File; import java.io.IOException; public class MyDesktopDemo { public MyDesktopDemo() { // have tried .txt, .rtf, .pptx all with no effect String pathAndFileString = "C:\\my.pptx"; File file = new File(pathAndFileString); if (Desktop.isDesktopSupported()) { Desktop desktop = Desktop.getDesktop(); if (desktop.isSupported(Desktop.Action.OPEN )) { try { System.out.println("desktop.open(" + pathAndFileString + ")"); // gets here desktop.open(file); // but nothing happens } catch (IOException e1) { e1.printStackTrace(); } } else { System.out.println("Desktop.Action.OPEN not supported"); } } else { System.out.println("Desktop not supported"); } } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new MyDesktopDemo(); } }); } }
-
Your code runs fine and opens a text file in Windows7 and also in virtualized WinXP Mode over Win7.
db -
Note: This thread was originally posted in the Swing forum, but moved to this forum for closer topic alignment.
-
Also, whyever are you wrapping the constructor call in invokeLater(...)? there are no Swing components involved here.
db -
sorry, that was just a leftover from copy/paste of another test program.
Thanks for running the code. I guess that means there is something "wrong" with this computer.
This discussion has been closed.