OS2 World.Com Forum
2012.05.24, 08:49:51 *
Welcome, Guest. Please login or register.

Login with username, password and session length
News:
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: Java 6 and JDownloader with REXX  (Read 1418 times)
jep
Global Moderator
Sr. Member
*****
Posts: 402


View Profile
« on: 2011.10.09, 19:15:14 »

Hello,

this is my code to start and use JAVA 6 with e.g. JDownloader.

Usage:
  • Save it to e.g. javarun.cmd and place it in the java6\bin folder.
    Run it once and it'll create a WPS Program Object in the Command Prompts folder and associate it with .jar-files
  • Double click on a jar file and it'll ask if it should create a Program Object on the desktop for it
    If you place an .ico file next to it with the same base name as the .jar file, it'll create the program object with that icon.
  • It set some configuration code for path and beginlibpath before it run the jar-file.

Note 1:Please place the attached Java6.ico next to the script in the java6\bin folder
Note 2: Tested with JDownloader, place that attached icon next to the .jar-file with the same name Wink

Code:
/* Rexx wrapper to start Java apps */

/* Load RexxUtil Library */
IF RxFuncQuery('SysLoadFuncs') THEN
DO
    CALL RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
    CALL SysLoadFuncs
END

PARSE SOURCE . . myRexxScript
java_dir = STRIP( FILESPEC( 'D', myRexxScript )||FILESPEC( 'P', myRexxScript ), 'T', '\' )

IF wpsObjectExist( '<RUN_JAVA6>' ) = 0 THEN
    rc = SysCreateObject( "WPProgram", "Java 6", "<WP_PROMPTS>", "OBJECTID=<RUN_JAVA6>;EXENAME="||myRexxScript||';PARAMETERS=-jar -Xmx512m "%**P\%**F";ICONFILE='||java_dir||'\java6.ico;ASSOCFILTER=*.jar;' )

PARSE VALUE REVERSE( ARG(1) ) WITH '"'ext'.'app'\'app_path'" m215xmX- raj-'
IF LENGTH( app ) > 0 THEN
DO
    app = REVERSE( app )
    app_path = REVERSE( app_path )
    objID = TRANSLATE( app )
    IF wpsObjectExist( '<WP_'||objID||'>' ) = 0 THEN
    DO
        CALL CHAROUT , 'Do you want to create an object on the desktop for '||app||'? (Y/n)'
        PARSE UPPER PULL answer
        IF answer <> 'N' THEN
            rc = SysCreateObject( "WPProgram", app, "<WP_DESKTOP>", "EXENAME="||myRexxScript||";PROGTYPE=PROG_WINDOWABLEVIO;PARAMETERS="||ARG(1)||";STARTUPDIR="||TRANSLATE( app_path )||";MINIMIZED=YES;OBJECTID=<WP_"||objID||">;ICONFILE="||app_path||"\"||app||".ico;" )
    END
END

CALL VALUE 'PATH', java_dir||';'||VALUE( 'PATH', 'OS2ENVIRONMENT' ), 'OS2ENVIRONMENT'
IF RxFuncQuery( 'SysSetExtLibPath ' ) Then
    'SET BEGINLIBPATH='||java_dir||';%BEGINLIBPATH%'
ELSE
    CALL SysSetExtLibPath java_dir||';'||SysQueryExtLIBPATH( 'B' ), 'B'
JAVA ARG(1)
RETURN rc

/* Code borrowed from REXX Tips & Tricks v3.60 */
wpsObjectExist: PROCEDURE /* parameter: '<new_wps_object_id>', return: 1 exist, 0 doesn't exist, 43 error */
  PARSE ARG objID
  rc = 43               /* init return/error code 43 = routine not found */
  SIGNAL ON SYNTAX NAME ObjectExistError

  IF SUBSTR( objID, 2, 1 ) <> ":" THEN
    IF LEFT( objID, 1 ) <> "<" & RIGHT( objID, 1 ) <> ">" THEN
      objID = "<" || objID || ">"

  /* create the object and see if it fail */
  tempRC = SysCreateObject( "WPFolder", "TestObject", "<WP_NOWHERE>", "OBJECTID=" || objID || ";", "FAIL" )

  IF tempRC = 1 THEN
  DO
    CALL SysDestroyObject objID
    rc = 0
  END
  ELSE
    rc = 1

ObjectExistError:

RETURN rc

REXX can do so much... use it!
Write a dll that both rexx and other apps can use instead of VIO/CLI apps!
Wrap the dll with a rexx script to do what the app does in other OS's!
Logged
sXwamp
Full Member
***
Posts: 223



View Profile WWW
« Reply #1 on: 2011.12.02, 15:09:43 »


Hi Jep,

Thanks for the Java Rexx script, works great. Keep up the great work and contribution to the community !!!

I was thinking about a Firefox install script.

Any tips on how to do these in Rexx

1) Copy 'firefox' directory to 'firefox-bak' directory

2) Unzip firefox.zip to a temp directory when dropping new firefox.zip file on the FirefoxInstall.cmd file

3) Delete files in 'firefox' directory, execpt firefox.exe (to keep reference to Program object).

4) copy new firefox files to 'firefox' directory and overwriting old firefox.exe.


Cheers,

Greggory
Logged
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.14 | SMF © 2006-2011, Simple Machines LLC
Joomla Bridge by JoomlaHacks.com
Valid XHTML 1.0! Valid CSS!