After looking at this question here: Get all DVD drives in Java
It seems to me that with JAVA 7 there is a way to discern between hard drives and dvd/cd drives when there is cd/dvd inside the drive. But that one method fails if the drive is empty.
My question is: Is there now 4 years later a method to discern which of the drives are hard drives and which are cd/dvd/blueray drives even if those drives have no cd/dvd/blueray inside?
Edit: The target OS for this is Linux
Can you run system commands, or must this be pure Java? If you can run system commands, try:
Runtime.getRuntime().exec("more /proc/sys/dev/cdrom/info");
This will give you something like:
CD-ROM information, Id: cdrom.c 3.20 2003/12/17
drive name: sr0
drive speed: 24
drive # of slots: 1
Can close tray: 1
Can open tray: 1
Can lock tray: 1
Can change speed: 1
Can select disk: 0
Can read multisession: 1
Can read MCN: 1
Reports media changed: 1
Can play audio: 1
Can write CD-R: 1
Can write CD-RW: 1
Can read DVD: 1
Can write DVD-R: 1
Can write DVD-RAM: 1
Can read MRW: 1
Can write MRW: 1
Can write RAM: 1
For more comprehensive info, you could run:
Runtime.getRuntime().exec("hwinfo --cdrom");
In there should be a line like:
Feature: CD-R, CD-RW, DVD-R, DVDRAM
If you have a blu-ray drive in the system, I would expect BDROM, BD-ROM, BD-R, BD-RW or something similar