• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 216
  • Last Modified:

Work with parameter

Hi,
Is there any example to pass 2 parameter to the executable jar file? what to adjust below?

public static void main(String[] args)
...

Open in new window

0
HuaMin Chen
Asked:
HuaMin Chen
  • 8
  • 6
  • 3
3 Solutions
 
Jeffrey Dake Senior Director of TechnologyCommented:
Can you give a little more detail on what you are trying to do?
0
 
HuaMin ChenSystem AnalystAuthor Commented:
I want to provide 2 values to the project, when running it. Since I still do not have the way to prompt for 2 input values (by previous thread), this is why now I expect to directly pass 2 values as parameter to the project. Thanks.
0
 
dpearsonCommented:
You can pass in the parameters like this when you run the jar:

java -jar myjar.jar param1 param2

And then in your main method they will be in the args array:

public static void main(String[] args) {
    System.out.println(args.length) ;
}

Hope that helps,

Doug
0
Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

 
HuaMin ChenSystem AnalystAuthor Commented:
Thanks. when running it, do I need to quote each string parameter with "?
0
 
HuaMin ChenSystem AnalystAuthor Commented:
How to correct the attached, due to this line?

		if (args[1].value=="")
...

Open in new window

t979.png
0
 
Jeffrey Dake Senior Director of TechnologyCommented:
Yes, you can pass in as many parameters you want that way. They will be in the array which is 0 based so you can get the values as

String paramOne = args[0];
String paramTwo = args[1];

Open in new window

0
 
dpearsonCommented:
args[] is an array of Strings and in Java Strings don't have a "value" method.

So you want something like

if (args[0].equals("")) {
     ...
}

or

if (args[0].isEmpty()) {
    ...
}

And yes you should put quotes around the parameters when passing them in.

Doug
0
 
HuaMin ChenSystem AnalystAuthor Commented:
Thanks. Is there any way to prompt for any input value directly, within the Eclipse Java project?
0
 
Jeffrey Dake Senior Director of TechnologyCommented:
Yes, you can setup run configurations. Within that you can set the arguments.

http://www.tutorialspoint.com/eclipse/eclipse_run_configuration.htm
0
 
dpearsonCommented:
Jeffrey is right that this is how to setup a run configuration.

I think you're specifically asking how to have that configuration prompt you for parameters.  To get that to happen you need to enter specific values as the parameters like "${string_prompt}" so that then Eclipse will prompt you for the value each time you run.

This is explained in more detail here:
http://www.oxfordmathcenter.com/drupal7/node/601

Doug
0
 
HuaMin ChenSystem AnalystAuthor Commented:
I get this
Z:\cmp2\Eclipse\JLib4>java -jar ItAcctNoValidator_049.jar "048" "0750-105633-462"
no main manifest attribute, in ItAcctNoValidator_049.jar

Open in new window

and here are the codes
package com.hkicl.ecp.hkanvm.b049;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class ItAcctNoValidator_049 {
	public static void main(String[] args) {
		String par1=args[0];
		String par2=args[1];
		int ret_val;
		String ret;
		
		...
		ret_val=ValAcctNo(par1,par2);
		ret="Return value: "+String.valueOf(ret_val);
		JOptionPane.showMessageDialog(null,
			    ret);
		System.exit(0);
	}
	public static int ValAcctNo (String ItCode,
			String ItAcctNo)
	{
		...

Open in new window

0
 
HuaMin ChenSystem AnalystAuthor Commented:
Many thanks.
Please disregard my last reply.
0
 
dpearsonCommented:
OK if you work through the example I posted above (from oxfordmathcenter) I think it's showing you everything you need.

Good luck,

Doug
0
 
HuaMin ChenSystem AnalystAuthor Commented:
To the attached, can we have more than one program argument? How about that we have more than one parameter as the input?
t980.png
0
 
dpearsonCommented:
I've not personally tried it (I don't use Eclipse any more) - but you should be able to use "${string_prompt} ${string_prompt}" to get it to ask for 2 params.

Did you try that?
0
 
HuaMin ChenSystem AnalystAuthor Commented:
I have 2 arguments to it like the attached and then have re-generated the jar file. But I still get this

Z:\cmp2\Eclipse\JLib4>java -jar ItAcctNoValidator_049.jar
no main manifest attribute, in ItAcctNoValidator_049.jar

Open in new window

t981.png
0
 
dpearsonCommented:
The error you're getting isn't anything to do with passing parameters to your code - it's telling you that the Jar file you're running wasn't built properly.

I think you're getting the 2 sets of help muddled together.

If you're running a Jar file that you create yourself, then you use the "Java -jar myjar.jar param1 param2" form.  You do this when you're not using Eclipse.

If you're running inside Eclipse you don't need to generate a Jar file at all.  Instead you create a run configuration and use that to pass the parameters to your Eclipse project.

You don't want to try to do both at the same time.

Doug
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: MCSA MCSE Windows Server 2012

This course teaches how to install and configure Windows Server 2012 R2.  It is the first step on your path to becoming a Microsoft Certified Solutions Expert (MCSE).

  • 8
  • 6
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now