Help using Base SAS procedures

Execute java class having parameter

Accepted Solution Solved
Reply
New Contributor
Posts: 3
Accepted Solution

Execute java class having parameter

Dear All,

Do you know how to execute a java .jar by passing parameter to the program using PROC GROOVY.

I can obtain similar result by running call system(java ....)

But I am experiencing issues by doing the same with proc groovy qnd it is very difficult to find documentation on this topic.

Thanks !!


Accepted Solutions
Solution
‎08-26-2014 05:43 PM
SAS Super FREQ
Posts: 671

Re: Execute java class having parameter

See also this example

proc groovy;
 
submit "p1" "p2";
 
public class ArgsTest {
    public static void main(String[] args) {
      int index;
      for (index = 0; index < args.length; ++index) {
        System.out.println(
"args[" + index + "]: " + args[index]);
      }
    }
  }
  endsubmit;
quit;

View solution in original post


All Replies
SAS Super FREQ
Posts: 671

Re: Execute java class having parameter

Well not exactly what you are looking for, but it might help you towards what you want to achieve. The below code passes two arguments to a groovy program that uses Java classes to read out width and height of an image.

Find more documentation on Proc Groovy in Base SAS(R) 9.4 Procedures Guide, Third Edition

%let imgName = c:\temp\f.JPG;
proc groovy;
submit "&imgName" "name=value";
 
import java.awt.image.BufferedImage
  import java.io.File
  import javax.imageio.ImageIO
  args.each {
    println
"NOTE: ----> arg ${it}"
  }
  def img = ImageIO.read(new File(args[
0]))
  println(
"NOTE: Width:" + img.getWidth() + " Height:" + img.getHeight())
  exports.put(
"xWidth", img.getWidth())
  exports.put(
"xHeight", img.getHeight())
endsubmit;
quit;

%put _user_;
New Contributor
Posts: 3

Re: Execute java class having parameter

Thank you for your answer.

Basically, I wrote a java program, so I have a *.class and a *.jar available.

And I wanted to know if it is possible to execute this jar file from SAS and to pass 2 parameters that this java program needs for execute.

Thx

Solution
‎08-26-2014 05:43 PM
SAS Super FREQ
Posts: 671

Re: Execute java class having parameter

See also this example

proc groovy;
 
submit "p1" "p2";
 
public class ArgsTest {
    public static void main(String[] args) {
      int index;
      for (index = 0; index < args.length; ++index) {
        System.out.println(
"args[" + index + "]: " + args[index]);
      }
    }
  }
  endsubmit;
quit;
New Contributor
Posts: 3

Re: Execute java class having parameter

Thank you for your help,

Another question related to the topic, do you know if it is possible to import additional class.

That's what I am doing, and I don't get any error but the execution is VERY VERY long.

Thank you !

☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 4 replies
  • 336 views
  • 0 likes
  • 2 in conversation