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.