BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Callmissing
Calcite | Level 5

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 !!

1 ACCEPTED SOLUTION

Accepted Solutions
BrunoMueller
SAS Super FREQ

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

4 REPLIES 4
BrunoMueller
SAS Super FREQ

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_;
Callmissing
Calcite | Level 5

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

BrunoMueller
SAS Super FREQ

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;
Callmissing
Calcite | Level 5

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 !

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

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