How do I set the maximal jvm-memory without adding an extra batch-script to my Programm.
Answer is provided below.
解决方案
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.