Solved

Work with parameter

Posted on 2015-02-10
17
128 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
Is Your AD Toolbox Looking More Like a Toybox?

Managing Active Directory can get complicated.  Often, the native tools for managing AD are just not up to the task.  The largest Active Directory installations in the world have relied on one tool to manage their day-to-day administration tasks: Hyena. Start your trial today.

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

Simplifying Server Workload Migrations

This use case outlines the migration challenges that organizations face and how the Acronis AnyData Engine supports physical-to-physical (P2P), physical-to-virtual (P2V), virtual to physical (V2P), and cross-virtual (V2V) migration scenarios to address these challenges.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Java Flight Recorder and Java Mission Control together create a complete tool chain to continuously collect low level and detailed runtime information enabling after-the-fact incident analysis. Java Flight Recorder is a profiling and event collectio…
Basic understanding on "OO- Object Orientation" is needed for designing a logical solution to solve a problem. Basic OOAD is a prerequisite for a coder to ensure that they follow the basic design of OO. This would help developers to understand the b…
In this video, we discuss why the need for additional vertical screen space has become more important in recent years, namely, due to the transition in the marketplace of 4x3 computer screens to 16x9 and 16x10 screens (so-called widescreen format). …
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …

772 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