views:

55

answers:

1

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

+1  A: 

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

Bill K
How would I do that? I updated my post with the VM parameters.
Tom
Tried your update, didn't work unfortunately. The launcher is doing a lot more things it seems. I wonder if these parameters are being handled by the .class files in the JRE? If so I could try to alter these with the source files available in a JDK.
Tom
I solved the problem by hex-editing the launcher.
Tom