Solved

Using Java environment variables to point to alternate Java folder

Posted on 2013-05-17
9
289 Views
Last Modified: 2013-06-18
My company's software utilizes Java Access bridge to function correctly.

We found that every time that Java updates itself, we have to once again re-install the Access Bridge components.

Is there a way to use an environment variable to point to either the Java Access Bridge or Java JRE to a folder that I can protect from getting updated?
0
Comment
Question by:James_Clements
  • 5
  • 2
  • 2
9 Comments
 
LVL 86

Expert Comment

by:CEHJ
ID: 39175447
I thought i'd already answered this question ...
0
 

Author Comment

by:James_Clements
ID: 39175569
Your suggestion was that the Java Access bridge documentation was incorrect.  It did not help with our customer.  I need a solution to help this customer.

Currently, we are considering a batch file that can somehow check appropriate folders for Java Access Components and reinstall if necessary on startup but the exact parameters for such a file have not been laid out yet.
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 39175681
Your suggestion was that the Java Access bridge documentation was incorrect.  I
No - that wasn't my suggestion. My suggestion was to install a JDK
0
 

Author Comment

by:James_Clements
ID: 39175772
We did try installing the JDK but it is not clear how to use the folder and whether or not that folder will be updated automatically.
0
Too many email signature changes to deal with?

Are you constantly being asked to update your organization's email signatures? Do they take up too much of your time? Wouldn't you love to be able to manage all signatures from one central location, easily design them and deploy them quickly to users. Well, you can!

 
LVL 1

Expert Comment

by:dcpetersonp
ID: 39192091
If you're using Java7 update 6, access bridge comes bundled which should make it easier to manage.
https://www.ssbbartgroup.com/blog/2012/08/30/jre-7-update-6-now-comes-bundled-with-the-java-access-bridge/
0
 

Author Comment

by:James_Clements
ID: 39211208
That was an interesting find but attempts to use this function were not successful.  We saw confirmation that java bridge was enabled as it says but using our software was not successful until we manually copied the JavaAccessbridge files themselves.  

We have prepared a very extensive batch file to find the correct Juice folder and to also check the registry for the Java installed files so we can update both locations.  I'll post it up once we are sure it is working successfully.
0
 

Accepted Solution

by:
James_Clements earned 0 total points
ID: 39245177
This is the batch file we went with:

    @echo on
    cd /d %~dp0

    rem case sensitive jre - finds juice Java folder and puts to temp.txt into temp folder
    :CHKFLEX
    set temp1=%LOCALAPPDATA%\Juice\Flex
    dir /AD /b %temp1% | find "jre" > %temp%\temp.txt

    rem didnt find the jre folder in juice
    if %errorlevel% NEQ 0 goto notfound

    rem create environment variable to path found and written to temp.txt
    for /f "delims=" %%x in (%temp%\temp.txt) do set temp2=%%x

    rem path to juice subfolder created
    set temp1
    set temp2
    set "_prog=%temp1%\%temp2%"

    rem copy if files aren't there already
    :x86
    Set JAVAHOME32=%_prog%
    @echo on
    if exist "%JAVAHOME32%\bin\JavaAccessBridge-32.dll" goto theend
    copy WindowsAccessBridge-32.dll    %WINDIR%\SYSTEM32
    copy JavaAccessBridge-32.dll       %JAVAHOME32%\bin
    copy JAWTAccessBridge-32.dll       %JAVAHOME32%\bin
    copy accessibility.properties   %JAVAHOME32%\lib
    copy access-bridge-32.jar       %JAVAHOME32%\lib\ext
    copy jaccess.jar          %JAVAHOME32%\lib\ext

    goto theend

    rem Juice JRE folder not found
    :notfound
    echo "Alternate JRE folder not found..."

    :theend
    pause

Although we did have a more advanced batch file that can copy to both the Juice folder and to the Java folder by checking the registry for the java home path.  Here is that one:

    @echo on
    cd /d %~dp0

    :REGVAL
    FOR /F "skip=2 tokens=2*" %%A IN ('REG QUERY "HKLM\Software\JavaSoft\Java Runtime     Environment" /v CurrentVersion') DO set CurVer=%%B
    FOR /F "skip=2 tokens=2*" %%A IN ('REG QUERY "HKLM\Software\JavaSoft\Java Runtime Environment\% CurVer%" /v JavaHome') DO set JAVA_HOME=%%B
    Set JAVA_HOME

    :CHKFLEX
    set temp1=%LOCALAPPDATA%\Juice\Flex
    dir /AD /b %temp1% | find "JRE" > %temp%\temp.txt

    if %errorlevel% NEQ 0 goto notfound

    for /f "delims=" %%x in (%temp%\temp.txt) do set temp2=%%x

    set temp1
    set temp2
    set "_prog=%temp1%\%temp2%"

    pause

    if not exist "%systemdrive%\Program Files (x86)" (
        goto x86
    ) else (
        goto x64
    )

    :x86
    Set JAVAHOME32=%_prog%
    @echo on
    if exist "%JAVAHOME32%\bin\JavaAccessBridge-32.dll" goto x86_next
    copy WindowsAccessBridge-32.dll    %WINDIR%\SYSTEM32
    copy JavaAccessBridge-32.dll       %JAVAHOME32%\bin
    copy JAWTAccessBridge-32.dll       %JAVAHOME32%\bin
    copy accessibility.properties   %JAVAHOME32%\lib
    copy access-bridge-32.jar       %JAVAHOME32%\lib\ext
    copy jaccess.jar          %JAVAHOME32%\lib\ext

    :x86_next
    if exist "%JAVA_HOME%\bin\JavaAccessBridge-32.dll" goto theend
    copy JavaAccessBridge-32.dll %JAVA_HOME%\bin
    copy JAWTAccessBridge-32.dll %JAVA_HOME%\bin
    copy accessibility.properties %JAVA_HOME%\lib
    copy access-bridge-32.jar %JAVA_HOME%\lib\ext
    copy jaccess.jar          %JAVA_HOME%\lib\ext

    goto theend


    :x64
    Set JAVAHOME32=%_prog%
    Set JAVAHOME64=%_prog%
    @echo on
    if exist "%JAVAHOME64%\bin\JavaAccessBridge-64.dll" goto x64_next
    copy WindowsAccessBridge-32.dll %WINDIR%\SYSWOW64
    copy WindowsAccessBridge-64.dll %WINDIR%\SYSTEM32
    copy JavaAccessBridge-64.dll    %JAVAHOME64%\bin
    copy JAWTAccessBridge-64.dll    %JAVAHOME64%\bin
    copy accessibility.properties   %JAVAHOME32%\lib
    copy access-bridge-64.jar       %JAVAHOME64%\lib\ext
    copy jaccess.jar %JAVAHOME64%\lib\ext

    :x64_next
    if exist "%JAVA_HOME%\bin\JavaAccessBridge-64.dll" goto theend
    copy JavaAccessBridge-64.dll    %JAVA_HOME%\bin
    copy JAWTAccessBridge-64.dll    %JAVA_HOME%\bin
    copy accessibility.properties   %JAVA_HOME%\lib
    copy access-bridge-64.jar       %JAVA_HOME%\lib\ext
    copy jaccess.jar %JAVA_HOME%\lib\ext
    goto theend

    :notfound
      echo "not found..."

    FOR /F "skip=2 tokens=2*" %%A IN ('REG QUERY "HKLM\Software\JavaSoft\Java Runtime Environment" /v CurrentVersion') DO set CurVer=%%B
    FOR /F "skip=2 tokens=2*" %%A IN ('REG QUERY "HKLM\Software\JavaSoft\Java Runtime Environment\%CurVer%" /v JavaHome') DO set JAVA_HOME=%%B

    set CurVer
    Set _prog=%JAVA_HOME%
    set _prog

    if not exist "%systemdrive%\Program Files (x86)" (
        goto x86
    ) else (
       goto x64
    )


    :theend
0
 
LVL 1

Expert Comment

by:dcpetersonp
ID: 39245393
out of curiosity, did you try the latest java 7 or did you only try j7u6?
0
 

Author Closing Comment

by:James_Clements
ID: 39255608
Took longer than expected to resolve this.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In this post we will learn how to connect and configure Android Device (Smartphone etc.) with Android Studio. After that we will run a simple Hello World Program.
How to record audio from input sources to your PC – connected devices, connected preamp to record vinyl discs, streaming media, that play through your audio card: Vista, Windows 7, Windows 8, Windows 8.1 and Windows 10 – both 32 bit & 64.
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …
With the advent of Windows 10, Microsoft is pushing a Get Windows 10 icon into the notification area (system tray) of qualifying computers. There are many reasons for wanting to remove this icon. This two-part Experts Exchange video Micro Tutorial s…

914 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now