Forum Stats

  • 3,740,789 Users
  • 2,248,322 Discussions
  • 7,861,444 Comments

Discussions

How to start FSAL as signed EXE?

Gary_A
Gary_A Member Posts: 624
edited Mar 28, 2018 1:29PM in Forms

Recently Frank made a post about using a third party product called launch4j that bundles up a whole bunch of things like icon, etc. in a stand alone executable for run Forms as FSAL.

This thread will hopefully help anyone who would like to implement (such as me!) or have questions about it.

cormacofmzGary_ABabar_BaigStefan ElvestalAhmed Haroon

Best Answer

Answers

  • Gary_A
    Gary_A Member Posts: 624
    edited Jan 9, 2018 9:20AM

    Thank you. I am sure plenty can benefit from this.

  • Gary_A
    Gary_A Member Posts: 624
    edited Jan 10, 2018 4:59PM

    The zip file link does not work. file doesn't exist.

    I used my own .bmp and .ico.

    When I try to build I get manifiest doesn't exist and cannot go further.

  • Frank Hoffmann
    Frank Hoffmann Member Posts: 782 Gold Badge
    edited Jan 10, 2018 7:44PM

    I have corrected the link to the graphics and frmsal.jar file, added the manifest file and modified the XML file to use forms12c_demo0001.manifest

    Please give it another try .. a demo is always as good as it was tested by someone else

    fmz
  • Gary_A
    Gary_A Member Posts: 624
    edited Jan 11, 2018 10:13AM

    Still no good. your relative file paths do not seem to work.

    It cannot the icon file, so I just hit the folder icon next to Icon and found it, but then:

    Specify minimum JRE version and/or bundled JRE path.

    I have modified your instructions to use my frmsal jar file.

    Also, your command line args are not complete in the attached image. What is the full value you used? I tried to use what is in the target of how I launch my own FSAL.

    I was able to generate but when running, I get the old generic unhelpful error:

    an error occurred while starting the application.

    Error log simply states:

    Version: 3.10

    CmdLine: c:\oracle\fsal\forms12c_demo0001.exe --l4j-debug

    WOW64: yes

    Working dir: c:\oracle\fsal\.

    Java min ver: 1.8.0_00

    Java max ver: 1.9.0_00

    64-bit search: SOFTWARE\JavaSoft\Java Runtime Environment...

    Check: SOFTWARE\JavaSoft\Java Runtime Environment\1.8

    Ignore: 1.8

    Check: SOFTWARE\JavaSoft\Java Runtime Environment\1.8.0_144

    Check launcher: C:\Program Files\Java\jre1.8.0_144\bin\javaw.exe (OK)

    Match: 1.8.0_144

    64-bit search: SOFTWARE\JavaSoft\Java Development Kit...

    Check: SOFTWARE\JavaSoft\Java Development Kit\1.8

    Ignore: 1.8

    Check: SOFTWARE\JavaSoft\Java Development Kit\1.8.0_121

    Ignore: 1.8.0_121

    64-bit search: SOFTWARE\JavaSoft\JRE...

    64-bit search: SOFTWARE\JavaSoft\JDK...

    Runtime used: 1.8.0_144 (64-bit)

    Launcher: C:\Program Files\Java\jre1.8.0_144\bin\javaw.exe

    Launcher args: -jar "c:\oracle\fsal\.\jre\bin\frmsal_linux.jar" -url "http://10.x.x.x:7777/forms/frmservlet?config=webutil_standaloneapp&form=XXX"

    Args length: 138/32768 chars

    Error msg: An error occurred while starting the application.

    Open URL: www.forms12c.com

  • Frank Hoffmann
    Frank Hoffmann Member Posts: 782 Gold Badge
    edited Jan 11, 2018 3:12PM

    Hi Gary,

    my example is Windows32, with a 32 Bit JRE and relative paths to the JRE Filearchiv. Did you change the XML File?

    This call is missing in your log:

    "start .\jre\bin\javaw -jar .\jre\bin\fsal_windows_12213.jar"

    It seems by coyping it to the Post it has changed .. the second XML quot; was converted to "

    <cmdLine>start .\jre\bin\javaw -jar .\jre\bin\fsal_windows_12213.jar -url &quot;

    start .\jre\bin\javaw -jar .\jre\bin\fsal_windows_12213.jar -url "https://www.forms12c.com/forms/frmservlet?config=DEMO0001"

    Version: 3.10

    CmdLine: C:\ORACLE\fsal\forms12c_demo0001.exe --l4j-debug

    WOW64:  no

    Working dir: C:\ORACLE\fsal\.

    Java min ver:

    Java max ver:

    Bundled JRE: .\jre

    Check launcher: C:\ORACLE\fsal\.\jre\bin\javaw.exe (OK)

    Launcher: C:\ORACLE\fsal\.\jre\bin\javaw.exe

    Launcher args: -Djava.net.useSystemProxies=true -jar "C:\ORACLE\fsal\.\jre\bin\fsal_windows_12213.jar" start .\jre\bin\javaw -jar .\jre\bin\fsal_windows_12213.jar -url "https://www.forms12c.com/forms/frmservlet?config=DEMO0001"

    Args length: 212/32768 chars

    Exit code: 259

    Also you do not seem to work with a Java file archiv.

    (Bundled JRE: .\jre)

    Can you please try firsat to run my demo on forms12c with fsal_Windows_12213 so we make sure it works.

  • Gary_A
    Gary_A Member Posts: 624
    edited Jan 12, 2018 11:59AM

    Frank, I got it to work...kind of.

    What I was hoping for is that the executable was going to bundle the entire package together so that I can just give it to another user and have them run it, that they didn't need JRE, they didn't need to the frmsal.jar file, etc.

    When I gave it to another user, it said it could not find the .jar file in the relative path from the location they run the .exe (in this case, the Desktop), so I created a jre/bin directoriy on the desktop and put the .jar file there and it worked.

    But, not only is it looking for the frmsal.jar file, it expects an installed JRE. Isn't the purpose of this bundle so it can just run on any PC?

    Am I doing something wrong, or it is this expected?

  • Gary_A
    Gary_A Member Posts: 624
    edited Jan 12, 2018 11:55AM

    Just to update, because I have been playing around...

    I tried with turning off the "don't wrap the jar" option, but I get a FRM-93143 checksum failed" error.

    I tried with "fallback option" in the JRE tab, but get an error about buildled JRE is missing or corrupted when I run on a machine without JRE installed.

  • Gary_A
    Gary_A Member Posts: 624
    edited Jan 16, 2018 3:30PM

    Installshield is not freeware, so will will not be creating an MSI.

    We'll stick with our original plan and just push out JRE 1.8.0_151 to machines, along with the fsal jar file and then just use a desktop link for the FSAL.

    fmz
  • Frank Hoffmann
    Frank Hoffmann Member Posts: 782 Gold Badge
    edited Feb 9, 2018 4:06PM

    I have checked you requirement and got the same result

    Executing: C:\ORACLE\fsal\start_demo1.exe will lead to the checksum error
    FRM-93143: Prüfsumme des Standalone-Oracle Forms-Launchers nicht erfolgreich.

    Wenden Sie sich an den Systemadministrator.

    Because ORACLE wants to make a Client/Server checksum compare with frmsal.jar the call fails

    But like very often there is a workaround for this limiitation

    try this:

    Generate a Startexe with wrapped FSAL.jar. This one will search for a JRE installed on the Client with Minimum Version 1.8.131 (as certified with 12.2.1.3) and compares it during start with a frmsal.jar on the server. Here is the trick: Copy your EXE on the Forms-Server in the "/forms/java" directory and rename it from start_demo1.exe to frmsal.jar. Restart weblogic / Forms - and voila - it works.

    Guess what will happen - the checksum between the Starting EXE File (something like 370KB) will exactly match with modified frmsal.jar on the server and will run.

    But with this trick you have two limitations - first one : only one exe with the exact checksum will run and the second limitation is, that signing of an wrapped JAVA/EXE does not work (error invalid corrupt jar file)

    But even for this there is a hack: https://sourceforge.net/p/launch4j/discussion/332683/thread/4e9e2558/ or maybe other commercial Tools like java2exe will do this Job better,

    But for me this is to much hacking .  I would still prefer the original solution.

    Example for the workaround.

    <?xml version="1.0" encoding="UTF-8"?>

    <launch4jConfig>

      <dontWrapJar>false</dontWrapJar>

      <headerType>gui</headerType>

      <jar>C:\ORACLE\fsal\frmsal.jar</jar>

      <outfile>start_demo1.exe</outfile>

      <errTitle></errTitle>

      <cmdLine>start javaw -jar frmsal.jar -url &quot;https://forms12c.com/forms/frmservlet?config=demo0001"</cmdLine>

      <chdir>.</chdir>

      <priority>high</priority>

      <downloadUrl>http://java.com/download</downloadUrl>

      <supportUrl></supportUrl>

      <stayAlive>false</stayAlive>

      <restartOnCrash>false</restartOnCrash>

      <manifest></manifest>

      <icon>C:\ORACLE\grafiken\cd_128.ico</icon>

      <jre>

        <path></path>

        <bundledJre64Bit>false</bundledJre64Bit>

        <bundledJreAsFallback>false</bundledJreAsFallback>

        <minVersion>1.8.0_131</minVersion>

        <maxVersion></maxVersion>

        <jdkPreference>jreOnly</jdkPreference>

        <runtimeBits>64/32</runtimeBits>

      </jre>

      <splash>

        <file>C:\ORACLE\grafiken\forms12c_splash.bmp</file>

        <waitForWindow>true</waitForWindow>

        <timeout>60</timeout>

        <timeoutErr>true</timeoutErr>

      </splash>

    </launch4jConfig>

  • Gary_A
    Gary_A Member Posts: 624
    edited Feb 12, 2018 10:08AM

    Thanks Franks, but I do not want to do a hack. We are perfectly happy with a shortcut to FSAL for every user. We are all on the same OS, version of java, etc. These machines are carbon copies of each other.

    Thanks for all the info. I learned a lot. I might re-address this in the future.

This discussion has been closed.