Solved

Work with parameter

Posted on 2015-02-10
17
116 Views
Last Modified: 2015-02-11
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
Comment
Question by:HuaMinChen
  • 8
  • 6
  • 3
17 Comments
 
LVL 10

Expert Comment

by:Jeffrey Dake
ID: 40602442
Can you give a little more detail on what you are trying to do?
0
 
LVL 10

Author Comment

by:HuaMinChen
ID: 40602449
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
 
LVL 26

Accepted Solution

by:
dpearson earned 334 total points
ID: 40602451
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
 
LVL 10

Author Comment

by:HuaMinChen
ID: 40602454
Thanks. when running it, do I need to quote each string parameter with "?
0
 
LVL 10

Author Comment

by:HuaMinChen
ID: 40602457
How to correct the attached, due to this line?

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

Open in new window

t979.png
0
 
LVL 10

Expert Comment

by:Jeffrey Dake
ID: 40602460
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
 
LVL 26

Assisted Solution

by:dpearson
dpearson earned 334 total points
ID: 40602461
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
 
LVL 10

Author Comment

by:HuaMinChen
ID: 40602463
Thanks. Is there any way to prompt for any input value directly, within the Eclipse Java project?
0
What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

 
LVL 10

Assisted Solution

by:Jeffrey Dake
Jeffrey Dake earned 166 total points
ID: 40602465
Yes, you can setup run configurations. Within that you can set the arguments.

http://www.tutorialspoint.com/eclipse/eclipse_run_configuration.htm
0
 
LVL 26

Expert Comment

by:dpearson
ID: 40602476
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
 
LVL 10

Author Comment

by:HuaMinChen
ID: 40602477
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
 
LVL 10

Author Comment

by:HuaMinChen
ID: 40602478
Many thanks.
Please disregard my last reply.
0
 
LVL 26

Expert Comment

by:dpearson
ID: 40602480
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
 
LVL 10

Author Comment

by:HuaMinChen
ID: 40602481
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
 
LVL 26

Expert Comment

by:dpearson
ID: 40602490
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
 
LVL 10

Author Comment

by:HuaMinChen
ID: 40602504
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
 
LVL 26

Expert Comment

by:dpearson
ID: 40602576
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

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

This article describes how to set permissions to allow a limited-permissions user to start and stop a particular System Service.   It is always best to give users only the permissions that they need to perform their job, so tweaking particular permi…
Introduction This article is the first of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article explains our test automation goals. Then rationale is given for the tools we use to a…
Viewers will learn about arithmetic and Boolean expressions in Java and the logical operators used to create Boolean expressions. We will cover the symbols used for arithmetic expressions and define each logical operator and how to use them in Boole…
This tutorial covers a practical example of lazy loading technique and early loading technique in a Singleton Design Pattern.

758 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

19 Experts available now in Live!

Get 1:1 Help Now