5

I would like to create a multi-plattform utility to format / erase memory sticks, disks, etc.

Is it possible to do this in Java? Or do I need to call native methods for each operational system plattform?

Maxbester
  • 2,435
  • 7
  • 42
  • 70
John John Pichler
  • 4,427
  • 8
  • 43
  • 72

3 Answers3

4

Not directly. You will need to invoke a operating system specific program to do the actual work for you.

Thorbjørn Ravn Andersen
  • 73,784
  • 33
  • 194
  • 347
4

It is very system specific, there is no universal way to perform this. Your options are

  1. Create a JNI library to perform this using system calls
  2. Write a wrapper class around utilities that perform this operation (for example, capture stdout and give inputs to stdin for an external process)
  3. Use OS-specific techniques (as previously mentioned) to zero out devices
  4. Use something like fat32-lib to manipulate specific file system types.
Waldheinz
  • 10,399
  • 3
  • 31
  • 61
disrvptor
  • 1,592
  • 12
  • 23
2

On unix-like systems, you'd be able (only as root, most likely) to read the disk files /dev/{h,s}d* and write whatever byte sequence you want to them, including byte sequences that represent a, say, ext3 file system.

I don't know of any ext3 libraries in Java, though, so you might have to write it yourself. Or a library for the file format you care about.

This is probably not what you want, though, but you can settle for it :-)

Jonas Kölker
  • 7,680
  • 3
  • 44
  • 51