开发者

Set Java Application's virtual machine max memory without access to VM parameters because of custom launcher?

开发者 https://www.devze.com 2022-12-28 04:26 出处:网络
I\'m using a Java application which allows you to import custom files. On import, these files are loaded into memory.

I'm using a Java application which allows you to import custom files. On import, these files are loaded into memory.

The开发者_运维百科 problem is that the files I want to import are very big, this causes an OutOfMemory exception. The crash log also informs me that the VM was started with the java parameter "-Xmx512m", I want to alter this to "-Xmx1024m" so that I got double the memory available.

The problem is that this application is using it's own JRE folder and that there's a launcher written in C which is calling the jvm.dll file. In any way, java.exe or javaw.exe are never called and thus I cannot set these parameters myself (if I delete these executables it doesn't matter, can still run the application - this is not the case with the dll).

So, my question is, can I set this VM parameter in an other way? I'm even willing to alter the JRE files if there is no other way.

Update: Found some extra info:

jvm_args: -Djava.system.class.loader=com.company.loader.NativeClassLoader -Xmx160m -Xms160m -Xincgc

java_command: unknown

Launcher Type: generic


You would probably be better off attempting to eliminate the launcher use a standard JVM. See if you can figure out what parameters Java is being launched with--it might help to dump the launcher and any associated configuration files.

Then you just call java yourself.

This may not work at all depending on what else the launcher is doing.

edit:

try:

java -Djava.system.class.loader=com.company.loader.NativeClassLoader -Xmx160m -Xms160m -Xincgc

from the command line against a real JVM. There is a good chance it will fail because of the NativeClassLoader or other stuff set up by the java loader.

Also you may be missing the actual java class it is trying to start (I don't know if that "NativeClassLoader" needs the actual main class or not).

Without knowing more about the C class loader, I don't know if anyone can help you much. Perhaps you could contact the vendor? You might dump the .exe file and see if there is any identifying text--if you could figure out where it came from, you might be able to find docs on it telling you how to forward parameters to the JVM

0

精彩评论

暂无评论...
验证码 换一张
取 消