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

  • Home
  • SEARCH
  • 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

Related Questions

Does Java have buffer overflows? If yes can you give me scenarios?
We have 18 databases that should have identical schemas, but don't. In certain scenarios,
I have a Java application that monitors a folder for incoming XML files. When
Does anyone have any good scenarios for teaching relational databases and SQL? All the
I have a the following scenarios. I am trying to calculate throughput of the
We have SQL Server database setup. We are setting up a replication scenarios where
I have a scenario. (Windows Forms, C#, .NET) There is a main form which
(Edited to try to explain better) We have an agent, written in C++ for
Seeing as Java doesn't have nullable types, nor does it have a TryParse(), how
I have a standalone Java problem running in a linux server. I started the

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.