简体   繁体   中英

Running Shell scripts through java

So I have a java class that takes individual commands and puts them into the shell through the Runtime and Process objects. My problem is that I can run a command like:

$ls /users/me/documents

and it will work, but

$cd /users/me/documents
$ls

still lists the root. Obviously the Process and runtime objects don't keep track of where it is. Is there any way to capture the terminal object, or do I have to keep track of the current directory manually?

Each shell script is going to start fresh. You will need to string all your command together:

cd /usr/me/documents && ls

cd /usr/me/documents; ls

The first variation will only run ls if the cd was successful (so if the directory was bad, ls will not run). The second variation will always run ls (so if the directory was bad, ls will run in the default directory).

You are spawning a separate process for each command. Put the commands into a script and execute it in one process

使用Runtime.exec的每个人都需要阅读此内容

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM