Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 550279
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T11:16:18+00:00 2026-05-13T11:16:18+00:00

I have a scenarios where I have a Java agent that runs on a

  • 0

I have a scenarios where I have a Java “agent” that runs on a couple of platforms (specifically Windows, Solaris & AIX). I’d like to factor out the differences in filesystem structure by using environment variables in the command line I execute.

As far as I can tell there is no way to get the Runtime.exec() method to resolve/evaluate any environment variables referenced in the command String (or array of Strings).

I know that if push comes to shove I can write some code to pre-process the command String(s) and resolve enviroment variables by hand (using getEnv() etc). However I’m wondering if there is a smarter way to do this since I’m sure I’m not the only person wanting to do this and I’m sure there are pitfalls in “knocking up” my own implementation.

Your guidance and suggestions are most welcome.

edit:
I would like to refer to environment variables in the command string using some consistent notation such as $VAR and/or %VAR%. Not fussed which.

edit:
To be clear I’d like to be able to execute a command such as:

perl $SCRIPT_ROOT/somePerlScript.pl args

on Windows and Unix hosts using Runtime.exec(). I specify the command in config file that describes a list of jobs to run and it has to be able to work cross platform, hence my thought that an environment variable would be useful to factor out the filesystem differences (/home/username/scripts vs C:\foo\scripts). Hope that helps clarify it.

Thanks.
Tom

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-13T11:16:18+00:00Added an answer on May 13, 2026 at 11:16 am

    I think I misunderstood your question with my original answer. If you are trying to resolve environment variable references on the command lines that you generated from with-in Java, I think you may have to “roll your own”.

    There are many different standards for how these are expanded, depending on the operating system. In addition, this is typically a function of the shell, so even on the same OS there could be different ways. In fact, standard operating system process activation functions (e.g. exec in Unix) do not do command line expansion.

    This is really not that difficult, with Java 5 and later. Define a standard for yourself, I typically use the Java standard that you see in security policy files and some enhanced property file definitions – ${var} expands to the variable/property name reference. Something like:

        private static String expandCommandLine(final String cmd) {
            final Pattern vars = Pattern.compile("[$]\\{(\\S+)\\}");
            final Matcher m = vars.matcher(cmd);
    
            final StringBuffer sb = new StringBuffer(cmd.length());
            int lastMatchEnd = 0;
            while (m.find()) {
                sb.append(cmd.substring(lastMatchEnd, m.start()));
                final String envVar = m.group(1);
                final String envVal = System.getenv(envVar);
                if (envVal == null)
                    sb.append(cmd.substring(m.start(), m.end()));
                else
                    sb.append(envVal);
                lastMatchEnd = m.end();
            }
            sb.append(cmd.substring(lastMatchEnd));
    
            return sb.toString();
        }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 284k
  • Answers 284k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer No. You cannot customise the tab bar icons in the… May 13, 2026 at 4:34 pm
  • Editorial Team
    Editorial Team added an answer The light's setInfluencingBounds() was not set correctly, so that the… May 13, 2026 at 4:34 pm
  • Editorial Team
    Editorial Team added an answer The XmlReader does not by default (but see Colin's and… May 13, 2026 at 4:34 pm

Related Questions

I am trying to find a trend in several datasets. The trends involve finding
In my Java code, I occasionally run into situations where I have to catch
I would like to implement a thread pool in Java, which can dynamically resize
Does anyone have any experience with creating database agnostic apps in Java, particularly with
We are using CVS for around 50 java-projects which we develop using Eclipse, and

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.