How to use "cd" command using Java runtime? How to use "cd" command using Java runtime? java java

How to use "cd" command using Java runtime?


There is no executable called cd, because it can't be implemented in a separate process.

The problem is that each process has its own current working directory and implementing cd as a separate process would only ever change that processes current working directory.

In a Java program you can't change your current working directory and you shouldn't need to. Simply use absolute file paths.

The one case where the current working directory matters is executing an external process (using ProcessBuilder or Runtime.exec()). In those cases you can specify the working directory to use for the newly started process explicitly (ProcessBuilder.directory() and the three-argument Runtime.exec() respectively).

Note: the current working directory can be read from the system property user.dir. You might feel tempted to set that system property. Note that doing so will lead to very bad inconsistencies, because it's not meant to be writable.


See the link below (this explains how to do it):

http://alvinalexander.com/java/edu/pj/pj010016

i.e. :

String[] cmd = { "/bin/sh", "-c", "cd /var; ls -l" };Process p = Runtime.getRuntime().exec(cmd);


Have you explored this exec command for a java Runtime, Create a file object with the path you want to "cd" to and then input it as a third parameter for the exec method.

public Process exec(String command,                String[] envp,                File dir)         throws IOException

Executes the specified string command in a separate process with the specified environment and working directory.

This is a convenience method. An invocation of the form exec(command, envp, dir) behaves in exactly the same way as the invocation exec(cmdarray, envp, dir), where cmdarray is an array of all the tokens in command.

More precisely, the command string is broken into tokens using a StringTokenizer created by the call new StringTokenizer(command) with no further modification of the character categories. The tokens produced by the tokenizer are then placed in the new string array cmdarray, in the same order.

Parameters:    command - a specified system command.    envp - array of strings, each element of which has environment variable settings in the format name=value, or null if the subprocess should inherit the environment of the current process.    dir - the working directory of the subprocess, or null if the subprocess should inherit the working directory of the current process. Returns:    A new Process object for managing the subprocess Throws:    SecurityException - If a security manager exists and its checkExec method doesn't allow creation of the subprocess     IOException - If an I/O error occurs     NullPointerException - If command is null, or one of the elements of envp is null     IllegalArgumentException - If command is empty