6

How do I set the maximal jvm-memory without adding an extra batch-script to my Programm. Answer is provided below.

Fabian Zeindl
  • 5,860
  • 8
  • 54
  • 78

1 Answers1

4

It's a good question, but your implmenetation assumes a lot. I presume you have to document the name of your jar for your users to invoke "java -jar xyz.jar" on so can you also include in the documentation that "-Xmx256M" is required?

You may have more luck using a java launcher, such as this one for Windows, where you put the launcher config (path, max memory etc.) in a separate file. For cross platform, there's LaunchAnywhere, and others, which function similarly. See How can I convert my Java program to an .exe file?

To improve upon your existing scheme:

  • use the java.home system property to resolve the location of the JDK/JRE
  • use the java.class.path to set up the class path, and similarly for java.library.path if your application requires native code.
  • pass command arguments passed to your main method to the spanwed process

But still, this seems to be a lot of effort that at best represents a leaky abstraction, when instead simple and clear documentation would suffice.

Community
  • 1
  • 1
mdma
  • 56,943
  • 12
  • 94
  • 128