Environmental variables as command line args
Hello, all,
I would like to pass an environmental variable as a command line argument for a java program.
Example:
java MyClass $MY_VARIABLE
However, it actually passes "$MY_VARIABLE", and not the value of MY_VARIABLE. I know that I can use java -D(MY_VARIABLE=SOMETHING) and get it using System.getProperty ("MY_VARIABLE");
However, I would prefer it the first way, actually passing the variable inside command line. Is there a way to do this?
Thank you,
Elana
Nevermind... Error in my code... It works
Thank you
Similar Messages
-
Include command line args in executable jar?
Hello all,
I'm trying to package up some software which takes 2 command line args to run (for example, java -jar prog.jar FooBar 3.14159). I'm using a utility called Jar2Exe to wrap it up into an exe (still needs JRE to run, but it's nicer packaging for distribution).
My question is, how can I included command line arguments in the jar? Or can I? Or, are there any exe-wrapping utilities out there that will allow me to accomplish this?
Thanks,
-ThokThok wrote:
Hello all,
I'm trying to package up some software which takes 2 command line args to run (for example, java -jar prog.jar FooBar 3.14159). I'm using a utility called Jar2Exe to wrap it up into an exe (still needs JRE to run, but it's nicer packaging for distribution).
My question is, how can I included command line arguments in the jar? Or can I? Or, are there any exe-wrapping utilities out there that will allow me to accomplish this?
Thanks,
-ThokOkay, did some more research... It appears you can't specify command line options in a jar, but if you package it into an exe, you can--depending on what utility you use to wrap it, that is. I downloaded a free one (Launch4j) and it does the trick.
-Thok -
Wrong to process command line args in a loop?
I tried to process my command line args like this:
int[] rgb = {0,0,0};
for(int i=1;i<3;i++)
rgb[i-1] = Integer.parseInt(args);
I enter six args where args 1 to 3 are ints and not zero, but rgb[2] always ends up being zero. I had to do away with the loop and write out three assignment statements, but if I had ten or more args that would be a headache! Does anyone know why this is happening? I'm using JDK 1.3.1_15.for(int i=0;i<3;i++)
rgb[i] = Integer.parseInt(args);
Look closely and make sure you understand the differences between my code and yours:
* i starts at 0, not 1
* rgb uses i for index, not i - 1.
Why would you have rgb using i -1 and args using i?
Now, if you have an arg [i]before the RGB args, then it would make sense for args' index to be different than rgb's. In that case, you might have i-1 and i, or i and i+1, etc. depending on how you structure your loop.
The main problem is that you had i=1; i<3, which will go through the loop body for i=1 and i=2 only. Make sure you understand why. -
I have this program and I need to use command line args which
will print ell . this program does this but I am using
substring instead of command line args.
public class h11 {
public static void main (String [] args ) {
String greeting = "Hello";
String h11 = greeting . substring (1, 4);
System.out.println( h11);
output: ell
Anyone..First off, the index of characters in a String is 0 based so in the string "Hello" you have the following;
char 0 = "H"
char 1 = "e"
char 2 = "l"
char 3 = "l"
char 4 = "o"
String.substring(start, end) is first inclusive and last exclusive so the parameters (1, 4) would return characters 1, 2 & 3 but not 0 or 4.
To get the whole word Hello (not withstanding that that's the entire string) you would want greeting.substring(0,5) however that would generate an index out of bounds error because 5 isn't a valid index for that string. So, here's a small sample program to show how to do what I think you're after.
public class ParmsTest{
public static void main(String[] args){
if( args.length > 0 ){
String parm = null ;
int end = 0 ;
int start = 0 ;
for( int i=0; i< args.length; i++ ){
parm = args[i] ;
if( parm.length() > 4 ){
end = 4;
else{
end = parm.length() - 1 ;
if( end > start ){
System.out.println( parm.substring(start, end) ) ;
else{
System.out.println( "Nothing to get" ) ;
System.out.println( "Finished processing parameters" ) ;
}It's a bit more complicated than your sample, but it also checks to see if there were any parameters, and it checks to see if the length we're trying to get is valid. Lastly it checks to see if there was anything to get before trying to print it. If it doesn't find anything to print it prints a message saying so.
Here's the question I have for you. Why? Why did I go to this trouble? -
Bash number of command line args....
Hi,
Is there a way in bash to get number of command line args ...
atm I am using $1 but of course if you pass a command like uname -a you need two?
wondered if there is a $<foo> that ill give number of args passed?
EDIT looks like '$#' emmmm lets see....woah!!! ok thanks ..... $# gives me number of args ... will check it out
$1 $2 > /tmp/cmd
messy way..... -
Hi All,
Can we include a variable in a command line( BOX) .
my requirement is to display line items in a main window.i want to display items in a box that extends dynamically. at end of line items i need to dispaly the total box.
even if there are no line items present then i need to display total box.
can we give a variable in an include command i.e giving YPOS &gv_lines& MM .
can anyone suggest me in this issue.
Regards,
SreHi,
You can give variable in an include command like &gv_lines& , no problem
regards,
bhupal -
there is command line argument fir integer like Integer.parseInt(args[0]); can we write same for "char" and" double" also like "Double.parseDouble" or else......
this has nothing to do with command line arguments
but yes, all the primitive wrapper classes can parse back their primitive
Learn to use the API, it's your friend
http://java.sun.com/javase/6/docs/api/ -
Sun Studio 12 - Can't specify command line args while profiling
New to Sun Studio development environment, and having trouble profiling my application. I have specified command-line arguments for both Debug and Release builds in Project/Configuration Properties/Runninjg/Arguments and this works fine when running the project from within the IDE. However when I attempt to profile the application through IDE Advanced/Advanced Profiling/Start, my application is launched with no command line arguments. So far I have been unable to find any place to define command line arguments for the program when run using the profiler. Any insights would be greatly appreciated.
Regards,
Chad.Yes, there is a bug. I reproduced the problem using a sample project Welcome. If I run it without profiling, the program prints correct arguments:
Welcome ...
Arguments:
1: arg 1
2: arg 2
[Press Enter to close window] If I run it with profiling "Advanced->Advanced Profiling->Start", the program prints wrong arguments:
Running "/export/home/SunStudio/SUNWspro/prod/bin/collect -d /export/home/nikm/SunStudioProjects/Welcome/nbproject/private/experiments -o test.1.er -A on -p on -S on /export/home/nikm/SunStudioProjects/Welcome/dist/Debug/welcome arg 1 arg 2" in /export/home/nikm/SunStudioProjects/Welcome
Creating experiment database /export/home/nikm/SunStudioProjects/Welcome/nbproject/private/experiments/test.1.er ...
Welcome ...
Arguments:
1: arg
2: 1
3: arg
4: 2
5: null
Run successful. Exit value 0.Note, it got 5 arguments instead of 2.
So, there are two bugs:
1. argument with spaces is transformed to several arguments.
2. a "null" argument is added to the list.
I'll file this bug and let you know the number.
A workaround is to ignore the last argument in your
program if it is "null", but this is a very ugly workaround :-)
Thanks,
Nik -
I'm a beginner in java and I need to know now to write the code that takes in a randon number of numbers at the command line and stores them in an array
ie. the program is called number and when I run it, it has to take in the numbers at the command line
ie. java numbers 12 13 14 15 19 1
then these numbers are to be stored in an array
How can I do this??
Thanking you
Tompublic class Numbers {
public static void main(String[] args) {
// Convert to integers
int[] param = new int[args.length];
for ( int cnt = 0; cnt < args.length; cnt++ ) {
try {
param[cnt] = Integer.parseInt(args[cnt]);
} catch (NumberFormatException nfe) {
System.err.println("Argument " + cnt + " is not integer, using '-1'");
param[cnt] = -1;
// use integers ...
} -
Reading directory path as command line args
Hello,
I'm trying to write a simple java web server that serves files from a specified directory over a specified port no. (both specified at the command line).
I am just wondering if any one has any advice on how to handle the directory argument and how check that it is valid etc.
Thanks
GaryTake a look at the File class, and the method isDirectory, and exists.
Kaj -
Command line args from java to C++
Hi
I want to pass command line arguemnts argc and argv from java to C++. I have browsed the net and most of them suggested that I declare the jni statement with jObjectarray.
I saw an example at http://www.csc.calpoly.edu/~fouzi/crossroads/Arguments.c
It said
#include "/home/java/linux/jdk118/include/jni.h"
#include "Arguments.h"
#include <stdio.h>
JNIEXPORT void JNICALL
Java_Arguments_setArgs (JNIEnv *jenv, jobject job, jobjectArray oarr)
/* obtain the size the the array with a call to the JNI function
GetArrayLength() */
jsize argc = (*jenv)->GetArrayLength(jenv, oarr);
/* Declare a char array for argv */
char const* argv[128];
int i;
for (i = 1; i < argc + 1; i++) {
/* obtain the current object from the object array */
jobject myObject = (*jenv)->GetObjectArrayElement(jenv, oarr, i-1);
/* Convert the object just obtained into a String */
const char str = (jenv)->GetStringUTFChars(jenv,myObject,0);
/* Build the argv array */
argv[i] = str;
/* print the argv array to the screen */
printf ("argv[%i] = %s\n",i,argv);
/* Free up memory to prevent memory leaks */
(*jenv)->ReleaseStringUTFChars(jenv, myObject, str);
// Increment argc to ajust the difference between Java and C arguments
argc++;
// Call a pipeline simulator function which uses command line arguments
start(argc,argv);
return;
That is what I have where the start method is declared like this:
void start(int argc, /* Argument count */ char argv[] / Argument strings */) {
But I get a warning when I build the C routine. The warning arises when I am calling the start method.
The warning says:
f:\jni\dsaccess.c(711) : warning C4090: 'function' : different 'const' qualifiers
f:\jni\dsaccess.c(711) : warning C4024: 'start' : different types for formal and actual parameter 2
Can you help?
Thanks
Lakshmi1. Your array building looks bogus: Are you missing an index?
2. You claim to be calling a "method". Are you? Or is it a subroutine? -
SQLLDR Command line arg question.
Is there a way to override , from the command line,
the table_name of the ...
INTO TABLE table_name
... clause of SQLLDR's LOAD statement?
ie.
If my control file looked like this ...
LOAD DATA
INFILE *
APPEND
INTO TABLE my_table_1
could I have data loaded into my_table_2 like so ...
sqlldr scott/tiger@test TABLE=my_table_2
... I know that TABLE= will not work. But is there
a way to do something like this?oops! ignore this post
-
I am new to java and am trying to accept a integer from the command line and am completely stumped? How to a Output a Request for the number and then accept the number from the command line. Thanks
warner: its ok. you will have a better day soon. I have some homework. Can you help me? I post it
My code does not work
private void test(int number)
int half = number/2;
int copy = half * 2;
if (copy = number) System.out.println("odd");
else System.out.println("even");
}No matter what number it is always odd -
How to export an environment variable from command line ?
Hello,
I have build a python application which run some processes(or executable or other python scripts) using subprocess.
i.e.
subprocess.call(["xyz.py"], shell=True, stdout=log_file, stderr=log_file)
Above call throws an error as "xyz.py is not recognized as an internal or external command." I added the location of xyz.py into path variable inside a batch script which I used to run before running the script.
set PATH=D:\path of xyz:%PATH%
But As subprocess executes a script into anther child shell, This setting is not available in child shell (or sub-shell) used by python script.
How can I make this PATH setting available to sub-shell also ?Rather than going into much details I have used explicit path by referring only one environment variable of the shell where application is running.
i.e. As xyz.py will be in a specific location of my repository, I am setting path of root_dir:
set root_dir=<path_of_root_dir>
And then,
subprocess.call([os.path.join(os.environ['roo_dir'], 'dir', 'xyz.py')], ...) -
Include command line args in jar file
If I make and executable jar file, how can I make it so that when it runs certain comman line arguments are included
If by "executable jar" you mean that you want to click the jar and run the program (and are using Windows), then you would have to alter the Windows file association for jar files that Java created, adding those options to the javaw command. Note that that would affect all jars that are run this was.
If you're willing to use the "javaw -jar" command, then just add the options to the javaw command.
Maybe you are looking for
-
Kanex MIni DisplayPort+USB Audio to HDMI Adapter --NO SOUND
Hi, I just purchased a Kanex Mini DisplayPort+USB Audio to HDMI Adapter for my new Samsung flat screen so I could watch netflix movies. The guy at Tekserve (NYC based authorized dealer) said it's really cool b/c it's audio and video all in one. Two c
-
Selecting multiple thumbnails weirdness
Windows 7 64 Bridge 5.02.4 x64 Cache is not exported to folders When I want to select multiple thumbnails, I hold down the Ctrl key and click the desired thumbnails. Only the first 2 or 3 thumbnails change state, yet they all show in the preview win
-
After iOS5 upgrade, I cant receive text messages
Please help??
-
My Nano is stuck in the locked position. So far, I have: 1. Tried Reset(Select+Menu) many times 2. Toggled Hold back and forth hundreds of times 3. Restored the software and device using iTunes seven times (this works as it should, but iPod will not
-
I bought an iPhone 5 in Boston, "unlocked" . The salespeople told me it simply needed to have a sim card inserted, in any country outside the USA. When I went to my local phone store in Greece, I was told this iPhone will not take a Greek sim card. N