Is there any possible way to retrieve information of my graphic card adapter using Java API?
I know that DirectX can easily do it, however, I just wonder if Java can do this...?
Like picture below.. DirectX finds out GPU adapter integrated to my hardware, and a list of its supporting resolutions.
My problem is, is there an API that Java would do this kind of thing? I really wonder if Java is able to get information regarding to Video Card.
Thank you.
As @Sergey K. said in his answer there are several ways to do this. One of these is using dxdiag
tool (obviously it will only work on Windows) particularly dxdiag /t
variant that will redirect the output to a given file. Then you can process that file to get required info:
public static void main(String[] args) {
try {
String filePath = "./foo.txt";
// Use "dxdiag /t" variant to redirect output to a given file
ProcessBuilder pb = new ProcessBuilder("cmd.exe","/c","dxdiag","/t",filePath);
System.out.println("-- Executing dxdiag command --");
Process p = pb.start();
p.waitFor();
BufferedReader br = new BufferedReader(new FileReader(filePath));
String line;
System.out.println(String.format("-- Printing %1$1s info --",filePath));
while((line = br.readLine()) != null){
if(line.trim().startsWith("Card name:") || line.trim().startsWith("Current Mode:")){
System.out.println(line.trim());
}
}
} catch (IOException | InterruptedException ex) {
ex.printStackTrace();
}
}
Generated file will look like this:
And output will look like this:
-- Executing dxdiag command --
-- Printing ./foo.txt info --
Card name: Intel(R) HD Graphics Family
Current Mode: 1366 x 768 (32 bit) (60Hz)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With