Fix: Java Platform SE binary has stopped working in Windows 11 / 10

Java-based applications usually do run quite smoothly with a few occasional crashes here and there. One of these most discussed errors is “Java(TM) Platform SE binary has stopped working“, which some users have reported witnessing while trying to run Java-based applications on their systems. In most cases, the conflict between the graphics card driver and the Java platform is the root of the cause. If you are facing the same dilemma, just follow these fixes.

Fix 1 – Update the graphics card driver

Updating the graphics card driver should work out.

We have shown how to easily update an NVIDIA card. If you are using a Radeon card or an Intel one, the steps are different but the method is similar.

1. At first, open the Geforce Experience.

2. When the GeForce Experience opens up, click on the “DRIVERS” area.

3. After that, tap on “DOWNLOAD“.

 

Download Min

 

Now, Geforce Experience will download the latest driver for your card.

4. Once it is done, tap on “Express installation“.

 

Express Installation Min

Now, follow the on-screen instructions to complete the installation.

After installing the driver, restart the system once. This shall solve the issue you are facing.

 



Fix 2 – Uninstall and reinstall Java

You can uninstall and reinstall the Java tools from your system.

Step 1

1. At first, press the Windows key+X keys together.



2. Then, tap on “Apps & Features” to open the Settings page.

 

Apps And Features Min

 

3. Now, on the right-hand side, type “Java” in the search box.

4. These will open up the list of Java apps on your system.

 

Java Update Search Min

 

5. After that, tap on the three-dot menu beside the first Java app and tap on “Uninstall“.

6. Again, confirm your action tap on “Uninstall“.

 

Uninstall Again Min

 

This will uninstall the Java app from your system.

7. Now, following the same method, uninstall other Java apps in the list.

 

Java Search Min

 

After that, close the Settings.

 

Step 2

Now, you have to download the latest version of the Java toolkit and install it.

1. At first, open the Java archive download section.

2. Then, choose the correct utility and version to download and tap on it.

Jdk Min

 

3. You have to log in using your Oracle credentials. This will start the downloading process.

 

Sign In Min

 

Once you have downloaded it, close the browser window.

4. After that, double-click on the downloaded setup file.

 

Jdk Dc Min

 

5. Then, tap on “Next” to install the various Java utilities on your system.

 

Next Min

 

Now, try to use the Java-based app and test whether you are still seeing the same error message or not.

 

Fix 3 – Modify the Environment Variables

Configuring new environment variables should solve the issue you are facing currently.

1. At first, press the Windows key+R keys together.

2. Then, type this UTR command and tap on “OK“.

sysdm.cpl

 

Sysdm Cpl Min

 

This will open up the System Properties window.

3. When the System Properties panel opens up, go to the “Advanced” tab.

4. Here, tap on the “Environment Variables...”.

 

Environmental Variables Min

 

5. Now, click on the “New…” option to create a new variable.

 

New Min

 

6. Then, put “_JAVA_OPTIONS” in the variable name box.

7. After that, type “-Xmx256M” in the variable value section.

8. Finally, tap on “OK” to save the change.

 

Java Options Min

 

9. Coming back to the Environment Variables page, tap on “OK” to save the changes.

10. Finally, tap on the “Apply” and “OK” option.

 

Apply Ok Enviroment Variables

 

After that, close the System Properties window. Now, reboot the machine once.

You won’t see the Java error message on your system again.

 

Fix 4 – Run a script

You can create and run a simple script to remove all the older Java from the system.

1. At first, launch the Notepad.

2. Then, copy-paste all these lines in the Notepad.

#This script is used to remove any old Java versions, and leave only the newest.

#Original author: mmcpherson

#Version 1.0 - created 2015-04-24

#Version 1.1 - updated 2015-05-20

#            - Now also detects and removes old Java non-update base versions (i.e. Java versions without Update #)

#            - Now also removes Java 6 and below, plus added ability to manually change this behaviour.

#            - Added uninstall default behaviour to never reboot (now uses msiexec.exe for uninstall)

#Version 1.2 - updated 2015-07-28

#            - Bug fixes: null array and op_addition errors.

# IMPORTANT NOTE: If you would like Java versions 6 and below to remain, please edit the next line and replace $true with $false

$UninstallJava6andBelow = $true

#Declare version arrays

$32bitJava = @()

$64bitJava = @()

$32bitVersions = @()

$64bitVersions = @()
#Perform WMI query to find installed Java Updates

if ($UninstallJava6andBelow) {

    $32bitJava += Get-WmiObject -Class Win32_Product | Where-Object {

        $_.Name -match "(?i)Java(\(TM\))*\s\d+(\sUpdate\s\d+)*$"

    }

    #Also find Java version 5, but handled slightly different as CPU bit is only distinguishable by the GUID

    $32bitJava += Get-WmiObject -Class Win32_Product | Where-Object {

        ($_.Name -match "(?i)J2SE\sRuntime\sEnvironment\s\d[.]\d(\sUpdate\s\d+)*$") -and ($_.IdentifyingNumber -match "^\{32")

    }

} else {

    $32bitJava += Get-WmiObject -Class Win32_Product | Where-Object {

        $_.Name -match "(?i)Java((\(TM\) 7)|(\s\d+))(\sUpdate\s\d+)*$"

    }

}
#Perform WMI query to find installed Java Updates (64-bit)

if ($UninstallJava6andBelow) {

    $64bitJava += Get-WmiObject -Class Win32_Product | Where-Object {

        $_.Name -match "(?i)Java(\(TM\))*\s\d+(\sUpdate\s\d+)*\s[(]64-bit[)]$"

    }

    #Also find Java version 5, but handled slightly different as CPU bit is only distinguishable by the GUID

    $64bitJava += Get-WmiObject -Class Win32_Product | Where-Object {

        ($_.Name -match "(?i)J2SE\sRuntime\sEnvironment\s\d[.]\d(\sUpdate\s\d+)*$") -and ($_.IdentifyingNumber -match "^\{64")

    }

} else {

    $64bitJava += Get-WmiObject -Class Win32_Product | Where-Object {

        $_.Name -match "(?i)Java((\(TM\) 7)|(\s\d+))(\sUpdate\s\d+)*\s[(]64-bit[)]$"

    }

}
#Enumerate and populate array of versions

Foreach ($app in $32bitJava) {

    if ($app -ne $null) { $32bitVersions += $app.Version }

}

#Enumerate and populate array of versions

Foreach ($app in $64bitJava) {

    if ($app -ne $null) { $64bitVersions += $app.Version }

}

#Create an array that is sorted correctly by the actual Version (as a System.Version object) rather than by value.

$sorted32bitVersions = $32bitVersions | %{ New-Object System.Version ($_) } | sort

$sorted64bitVersions = $64bitVersions | %{ New-Object System.Version ($_) } | sort

#If a single result is returned, convert the result into a single value array so we don't run in to trouble calling .GetUpperBound later

if($sorted32bitVersions -isnot [system.array]) { $sorted32bitVersions = @($sorted32bitVersions)}

if($sorted64bitVersions -isnot [system.array]) { $sorted64bitVersions = @($sorted64bitVersions)}

#Grab the value of the newest version from the array, first converting

$newest32bitVersion = $sorted32bitVersions[$sorted32bitVersions.GetUpperBound(0)]

$newest64bitVersion = $sorted64bitVersions[$sorted64bitVersions.GetUpperBound(0)]


Foreach ($app in $32bitJava) {

    if ($app -ne $null)

    {

        # Remove all versions of Java, where the version does not match the newest version.

        if (($app.Version -ne $newest32bitVersion) -and ($newest32bitVersion -ne $null)) {

           $appGUID = $app.Properties["IdentifyingNumber"].Value.ToString()

           Start-Process -FilePath "msiexec.exe" -ArgumentList "/qn /norestart /x $($appGUID)" -Wait -Passthru

           #write-host "Uninstalling 32-bit version: " $app

        }

    }

}

Foreach ($app in $64bitJava) {

    if ($app -ne $null)

    {

        # Remove all versions of Java, where the version does not match the newest version.

        if (($app.Version -ne $newest64bitVersion) -and ($newest64bitVersion -ne $null)) {

        $appGUID = $app.Properties["IdentifyingNumber"].Value.ToString()

           Start-Process -FilePath "msiexec.exe" -ArgumentList "/qn /norestart /x $($appGUID)" -Wait -Passthru

           #write-host "Uninstalling 64-bit version: " $app

        }

    }

}

 

3. Then, tap on “File” and tap on the “Save as” option.

 

Save As Min

 

4. Select the file type as “All files”.

5. After that, name it as “Remove_old_java_versions.ps1” and tap on “Save” to save the script.

 

Remove Old Java Min

 

Once you have saved the file, close the Notepad.

6. After that, right-click on this “Remove_old_java_versions” powershell script and tap on “Run with powershell“.

 

Run With Powershell Min

 

This will remove the older, corrupted Java installation from your system.

 

Fix 5  – Clean the Java cache

You have to clean the Java cache.

1. At first, type “Configure Java” in the search box.

2. Then, tap on the “Configure Java” to access it.

 

Configure Min Min

 

3. Now, go to the “General” tab.

4. Here, tap on the “Settings…” to access it.

 

General Deletefiles Min Min

 

5. Now, tap on “Delete Files...”.

6. Then, tap on “OK” to proceed further.

 

Delete Ok Min

 

7. Coming back to the Temporary Files Settings page, tap on “OK“.

 

Delete Files Min

 

Finally, when you are done, close all the windows.

Test whether this solution works or not.



 

Fix 6 – Run the program in Compatibility mode

There may be an issue of compatibility for the Java app.

1. At first, go to this location –

C:\users\%username%\AppData\Local\Microsoft\Windows\WER\ReportArchive

 

2. Here, look for the error log file.

3. Then, right-click on the error log and tap on “Open with“.

 

Open With Min

 

4. Now, choose “Notepad“.

 

Notepad Ok Min

 

4. Now, look for the “AppPath“. This way, you will know actual which Java.exe file has caused this issue.

Usually, it is like this

D:\appname\subfolder\ocx\jre\bin)  

5. Now, just navigate to the root location of this Java app.

6. Then, right-tap on the “Java” app and tap on “Properties“.

 

Props Min

 

7. Next, go to the “Compatibility” tab.

8. After that, check the “Run this program in compatibility mode for:” option.

9. Next, choose “Windows 8” from the drop-down menu.

 

Windows 8 Compatibility Min

 

10. Then, save this change with a tap on “Apply” and “OK“.

 

Apply Ok Run As Admin Universal Min

 

After that, log out from the web interface or any other service you are using. Then, log back in.

Try to launch the app again and check if this works out or not. Your problem should be solved.