Ok so suddenly java has not been working correctly on my computer. now when I run Minecraft using a batch file to allow more ram I get this Error: Could not create the Java Virtual Machine Error: A fatal exception has occurred. Program will now exit. (running Minecraft normally works fine) And I've recently started programming a new project in java using mostly Notepad ++ (because I didn't feel like going through the trouble to configure Java 3D in eclipse) but I started getting a lot of errors and other problems so I decided to try eclipse again but now when I try to open eclipse I get this error. Failed to load the JNI shared library "C:\Program Files (x86)\java\jdk1.7.0_05\bin\..\jre\bin\client\jvm.dll
I have windows 7 64bit, 4gb of ram Java 64bit, Java3D, JDK (I think I may have 32bit installed for some reason but has worked fine until now)
I have no idea why this happened all of the sudden but I hope some one can help.
Thanks in advanced!
because it lags with only 1gb and i dont multitask when i play minecraft so i might as well use the other 3 gb.same thing happens when I try to run minecraft off of a flash drive with a batch file (which also used to work fine)
I'm kind of curious why allocating more memory would make it run worse even though I find it totally plausible given Minecraft.
More Memory means the GC Generations are longer. This means it will wait longer before Collecting. Which means there will be more things to clean-up, which means that Garbage Collections will have more work to do. the GC doesn't stop the program during cleanup, but I believe it does temporarily suspend the application to call finalizers. LWJGL uses finalizers to cleanup OGL handles. the frame-by-frame objects created by Minecraft are normally transient objects created while rendering the frame. Thus it means we have more objects to clean-up that have those finalizers and require the application to0 be suspended while those finalizers are run.
If finalizers do run on a separate thread, then I imagine LWJGL has some built-in mechanism in which it can delegate the work to the same thread where it created the OpenGL context (since OGL isn't thread safe in this manner, as far as I'm aware). Either way, it boils down to more work when a GC occurs.
Side note: the exception where it is helpful is when the program in question will actually use more memory than there is available in the Java heap; heavily modded minecraft certainly falls into this category, most crashes from large modpacks are a result of the mods themselves using a lot of their own objects, many of which use caching to allow for detection of when the player placed a block; these caches typically have bad policies (or no policies at all). At the very least it sands to reason that having a lot of these mods is going to use more memory as each one has it's own data that it keeps track of and references as the application runs.
Allocating more RAM to minecraft often is the cause of problems like this.
Try without the batch file and without allocating more RAM.
it does work with out the batch but it used to work with the batch file and minecraft is not the only problem im having. I am also having trouble using eclipse. and again all this started not working less than a week ago.also when I allocate more ram I have never had minecraft lag or crash.
it does work with out the batch but it used to work with the batch file and minecraft is not the only problem im having. I am also having trouble using eclipse. and again all this started not working less than a week ago.
Reinstall Java.
also when I allocate more ram I have never had minecraft lag or crash.
...... Except you have, otherwise you wouldn't be posting this.
...... Except you have, otherwise you wouldn't be posting this.
minecraft its self has never crashed It just wont launch from the batch file because of JAVA. so FORGET about minecraft because that is not the big reason im posting this it is because Eclipse wont launch any more.
ok so I dont have the most up to date java installers and I do not have an unlimited internet data plan at home so I can not try that right now but thanks.
More Memory means the GC Generations are longer. This means it will wait longer before Collecting. Which means there will be more things to clean-up, which means that Garbage Collections will have more work to do. the GC doesn't stop the program during cleanup, but I believe it does temporarily suspend the application to call finalizers. LWJGL uses finalizers to cleanup OGL handles. the frame-by-frame objects created by Minecraft are normally transient objects created while rendering the frame. Thus it means we have more objects to clean-up that have those finalizers and require the application to0 be suspended while those finalizers are run.
If finalizers do run on a separate thread, then I imagine LWJGL has some built-in mechanism in which it can delegate the work to the same thread where it created the OpenGL context (since OGL isn't thread safe in this manner, as far as I'm aware). Either way, it boils down to more work when a GC occurs.
Side note: the exception where it is helpful is when the program in question will actually use more memory than there is available in the Java heap; heavily modded minecraft certainly falls into this category, most crashes from large modpacks are a result of the mods themselves using a lot of their own objects, many of which use caching to allow for detection of when the player placed a block; these caches typically have bad policies (or no policies at all). At the very least it sands to reason that having a lot of these mods is going to use more memory as each one has it's own data that it keeps track of and references as the application runs.
So.. short version.
The garbage collector waits longer to clean crap up and minecraft makes too much crap and thus Java tells minecraft to wait while it cleans up its mountain of crap and thus bad performance becomes worse performance.
ok so today I started to set up a mc server and works fine using the normal server jar file but when I tried to start a bukkit server i got the same error about being unable to start java virtual machine. This is really starting to annoy me. I saw some where that you only get this error with java 7 but if you downgrade to java 6 it will work fine. does anyone no if thats true?
I have windows 7 64bit, 4gb of ram Java 64bit, Java3D, JDK (I think I may have 32bit installed for some reason but has worked fine until now)
I have no idea why this happened all of the sudden but I hope some one can help.
Thanks in advanced!
There is absolutely no reason to be using more than the default 1GB.
Try without the batch file and without allocating more RAM.
I'm sure one of the people on here who have delved into the code can explain why.
-
View User Profile
-
View Posts
-
Send Message
Curse PremiumMore Memory means the GC Generations are longer. This means it will wait longer before Collecting. Which means there will be more things to clean-up, which means that Garbage Collections will have more work to do. the GC doesn't stop the program during cleanup, but I believe it does temporarily suspend the application to call finalizers. LWJGL uses finalizers to cleanup OGL handles. the frame-by-frame objects created by Minecraft are normally transient objects created while rendering the frame. Thus it means we have more objects to clean-up that have those finalizers and require the application to0 be suspended while those finalizers are run.
If finalizers do run on a separate thread, then I imagine LWJGL has some built-in mechanism in which it can delegate the work to the same thread where it created the OpenGL context (since OGL isn't thread safe in this manner, as far as I'm aware). Either way, it boils down to more work when a GC occurs.
Side note: the exception where it is helpful is when the program in question will actually use more memory than there is available in the Java heap; heavily modded minecraft certainly falls into this category, most crashes from large modpacks are a result of the mods themselves using a lot of their own objects, many of which use caching to allow for detection of when the player placed a block; these caches typically have bad policies (or no policies at all). At the very least it sands to reason that having a lot of these mods is going to use more memory as each one has it's own data that it keeps track of and references as the application runs.
...... Except you have, otherwise you wouldn't be posting this.
You need to follow this specifically.
So.. short version.
The garbage collector waits longer to clean crap up and minecraft makes too much crap and thus Java tells minecraft to wait while it cleans up its mountain of crap and thus bad performance becomes worse performance.
Okay so that wasn't so short, close enough.