Thunderhead Engineering Forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

Forum moved to https://forum.thunderheadeng.com

Author Topic: Pyrosim exe wont launch  (Read 3964 times)

Dives

  • New Member
  • *
  • Posts: 3
    • View Profile
Pyrosim exe wont launch
« on: November 09, 2013, 12:37:52 am »

Just downloaded the trial version of pyrosim and i keep getting the following error when attempting to launch the program:

Logging out/err to "C:\Users\pyrosim_out1383954910331.log"
Using properties file: C:\Users\AppData\Roaming\PyroSim\PyroSim.props
Error retrieving preferences from file: C:\Users\AppData\Roaming\PyroSim\PyroSim.props
Using defaults.
loading FreeImage...done
loading PyroSim...java.lang.UnsatisfiedLinkError: C:\Program Files\PyroSim 2012\lib\PyroSim.dll: Can't find dependent libraries
   at java.lang.ClassLoader$NativeLibrary.load(Native Method)
   at java.lang.ClassLoader.loadLibrary0(Unknown Source)
   at java.lang.ClassLoader.loadLibrary(Unknown Source)
   at java.lang.Runtime.loadLibrary0(Unknown Source)
   at java.lang.System.loadLibrary(Unknown Source)
   at thunderheadeng.gui.Application.loadLib(Unknown Source)
   at pyrosim.PyroSim.loadLibraries(Unknown Source)
   at thunderheadeng.gui.Application.<init>(Unknown Source)
   at pyrosim.PyroSim.<init>(Unknown Source)
   at pyrosim.PyroSim.main(Unknown Source)

Any help is appreciated.

Logged

Charlie Thornton

  • Thunderhead
  • *****
  • Posts: 851
    • View Profile
Re: Pyrosim exe wont launch
« Reply #1 on: November 11, 2013, 09:17:14 am »

A user reported the same error a month ago. It's mysterious. I haven't able to reproduce it. He ultimately re-installed his operating system (Win8 64-bit) and the subsequent PyroSim install worked just fine. Some attempted fixes that did not work:

- install Microsoft Visual C++ 2008 Redistributable Package (this is the "obvious" fix, but had no effect)

- placing PyroSim's JRE at the front of the PATH environment variable (no effect)

I also suggested uninstalling all Java JDKs and JREs from the control panel's uninstall window. I don't know if the user attempted that or not.

You might try uninstalling the 64-bit version of PyroSim and trying out the 32-bit version. That may bypass whatever DLL load problem is causing this issue.

I'd like to get to the bottom of this bug. Please let me know if you learn more.
Logged

Dives

  • New Member
  • *
  • Posts: 3
    • View Profile
Re: Pyrosim exe wont launch
« Reply #2 on: November 11, 2013, 05:35:16 pm »

I just tried installing the 32-bit version and I received the same error (pasted below). What's interesting is pathfinder works great, I would imagine both pyrosim and pathfinder execute in a similar manner. I think the best solution would be to just install pyrosim on a different computer to prevent the hassle of re installing windows.

Logging out/err to "C:\Users\pyrosim_out1384212550101.log"
Using properties file: C:\Users\AppData\Roaming\PyroSim\PyroSim.props
Error retrieving preferences from file: C:\Users\AppData\Roaming\PyroSim\PyroSim.props
Using defaults.
Starting in SAFE MODE
Code Source: /C:/Program%20Files%20(x86)/PyroSim%202012/pyrosim.jar
Install Folder: C:\Program Files (x86)\PyroSim 2012
Setting preference "EnableColorBufferDrawing"=false
Setting preference "EnableDepthBufferDrawing"=false
Setting preference "UseVertexBuffers"=false
loading FreeImage...done
loading PyroSim...java.lang.UnsatisfiedLinkError: C:\Program Files (x86)\PyroSim 2012\lib\PyroSim.dll: Can't find dependent libraries
   at java.lang.ClassLoader$NativeLibrary.load(Native Method)
   at java.lang.ClassLoader.loadLibrary0(Unknown Source)
   at java.lang.ClassLoader.loadLibrary(Unknown Source)
   at java.lang.Runtime.loadLibrary0(Unknown Source)
   at java.lang.System.loadLibrary(Unknown Source)
   at thunderheadeng.gui.Application.loadLib(Unknown Source)
   at pyrosim.PyroSim.loadLibraries(Unknown Source)
   at thunderheadeng.gui.Application.<init>(Unknown Source)
   at pyrosim.PyroSim.<init>(Unknown Source)
   at pyrosim.PyroSim.main(Unknown Source)
 
Logged

Dives

  • New Member
  • *
  • Posts: 3
    • View Profile
Re: Pyrosim exe wont launch
« Reply #3 on: November 11, 2013, 05:53:12 pm »

According to this article on IBM's website, this problem occurs with the 64 bit Java. http://www-01.ibm.com/support/docview.wss?uid=swg21614131
Unfortunately, the resolution given on the site is beyond my computer capabilities. 
Logged

Charlie Thornton

  • Thunderhead
  • *****
  • Posts: 851
    • View Profile
Re: Pyrosim exe wont launch
« Reply #4 on: November 12, 2013, 09:05:34 am »

It looks like the IBM problem is that they are relying on the JAVA_HOME environment variable to launch java and they have made a DLL that only works with 32-bit java. When their "Mobile_Installer.cmd" script executes something like:

%JAVA_HOME%\bin\java.exe com.ibm.tivoli.maximo.mobile.Bootstrap

It's using whatever java install the JAVA_HOME environment variable happens to be pointing at. Which runs just fine for their java code, but when it goes to load a native library (DB2EJDBC.dll) they fail if JAVA_HOME was pointing at 64-bit java because the 64-bit java process won't load the DLL's 32-bit dependencies. I think.

We attempt to be more bulletproof by creating the Java VM directly from a custom C++ launcher application that explicitly loads JAVA DLLs from a JRE that we bundle with PyroSim. We bundle a 32-bit JRE with 32-bit PyroSim and a 64-bit JRE with 64-bit PyroSim. However, after we've created the right VM and are launching PyroSim's java code, the java code requests that the PyroSim.dll (C++ code, 3D stuff) be loaded. The loading of that DLL is managed by some combination of the Java VM and the operating system. I think something is going wrong when the operating system attempts to load PyroSim.dll's dependent DLLs, in particular awt.dll. That DLL should be loaded from the JRE shipped with PyroSim, but I don't know how to enforce that without changing our C++ code to explicitly load that one too (awt is not the only dependent library, and it seems like a slippery slope).

The IBM article did give me the idea to try pointing a JAVA_HOME variable at a 32-bit DLL and attempting to run 64-bit PyroSim. Sadly, PyroSim ran just fine and I still don't know how to reproduce the problem.
Logged