Forum Discussion

AndrewMason's avatar
AndrewMason
Copper Contributor
Jul 27, 2021

Packing Apps with built in JRE...

I have a couple of applications that I am trying to capture that install their own JRE however after creating the MSIX they complain that the JRE can't be found and suggest setting JAVA_HOME.

 

---------------------------
Error launching IDEA
---------------------------
Failed to load JVM DLL C:\Program Files\WindowsApps\IntelliJIDEACommunityEdition2016.3.4_163.12024.16.0_x64__p1z46hfsarpje\VFS\ProgramFilesX86\JetBrains\IntelliJ IDEA Community Edition 2016.3.4\jre\jre\bin\server\jvm.dll
If you already have a 32-bit JDK installed, define a JAVA_HOME variable in Computer > System Properties > System Settings > Environment Variables.
---------------------------
OK
---------------------------

 

The application works fine when installed from original source without an additional JRE installed or a JAVA_HOME Environment Variable set.  The file that can't be found is present in the location that the app is looking for them, I have tried capturing the app both with and without installing to VFS as well as installing to a location without spaces in the target folder structure.  I have also launched the application during the capture phase and for the first use settings.

 

I have also used the PSF Trace Fixup but all that seems to do is confirm the error message I am getting from the application.

 

I'm not sure what else I can try or why the app wouldn't be able to find the JRE when it is looking in the correct place.

 

18 Replies

  • I found the installer, and it seems to install natively without a JRE. Can you provide detail on what version JRE you use, and how to test if the app is working?
    • TIMOTHY_MANGAN's avatar
      TIMOTHY_MANGAN
      MVP
      AndrewMason - Never mind. I just reread your original post which had at least the first half of that question answered. I'll test it soon and report back.
      • TIMOTHY_MANGAN's avatar
        TIMOTHY_MANGAN
        MVP

        Siva116 AndrewMason 

        I have looked into UVC.  It is an odd thing... 

        I don't have it working yet, but getting closer.

         

        What I know:

        • DynamicLibraryFixup is needed for a number of dlls..
        • vcruntime140.dll and vcruntime140_1.dll must still be copied to the Program Files\UVC folder (as the app uses fileexists before loadlibrary so DynamicLibraryFixup doesn't help.

         

        The app makes use of FindFirstFile and gets confused.  This is something that I am investigating as a potential edge-case bug in the FileRedirectionFixup.  I'll drop a note back here if fixable.

    • AndrewMason's avatar
      AndrewMason
      Copper Contributor
      Hi Siva116,

      No, this isn’t resolved yet but I have noticed that if you inspect the main EXE with ProcMon you can see that the JRE bin folder and at least one other JRE path is present in the path environment variable for the EXE so it looks like that is created at runtime and the path is correct but it still says the JRE is invalid.

      I’m not sure if there is something else missing or if maybe it wants to write somewhere in the JRE location.

      Andrew

Resources