Note that you can always just trigger operation manually when starting process 2, so you can get by without a script, though it is not convenient.
Some ideas:
On 2023-02-22, Saurav writes: I have optimized the MacOS script for running
and testing our Blockchain program. Save the below code snippet in ".scpt"
file extension and place it in the same directory as your "Blockchain.java"
file along with the Gson jar. To execute the script, open it using the Apple
script editor and execute it through "run" button provided in the
dialog. Please let me know if there is any problem while running this
script.
--Start Script
set processcount to 3 --Set process count as required (Default set to 3)
tell application "Finder"
--Fetching the current path
set currentPath to (do shell script "dirname " & quoted form of (POSIX path of (path to me) as string)) as string
tell application "Terminal"
if not (exists window 0) then reopen
activate
set targetWindow to 0
do script "cd " & currentPath in window 0 --Setting path to current path
do script "javac -cp \"gson-2.8.2.jar\" *.java" in window 0 --Compiling Blockchain
do script "java -cp \".:gson-2.8.2.jar\" Blockchain 0" in window 0 --Executing Blockchain first process as argument "0"
delay 1
repeat with counter from 1 to (processcount-1) --Looping through the counter and opening different terminal each
repeat with counter from 1 to (processcount-1) --Looping through the counter and opening different terminal each for given count
do script "cd " & currentPath
delay 0.5
do script "java -cp \".:gson-2.8.2.jar\" Blockchain "&counter in front window
delay 1
end repeat
end tell
end tell
--End Script
------------
In Windows, the ".;gson..." part is valid. In Unix systems, this needs to be
".:gson..." with a colon, and not a semicolon. -- Thanks Kyle!
Thanks Riddhi: IntelliJ script for
running multiple processes.
Thanks David Maciulis!:
I figured out a very easy way of starting multiple java programs using
AppleScript.
1) Create a text file that has .scpt extension --> myScript.scpt
2) Copy/paste the script below (don't forget to change the path)
3) Run the script in terminal --> osascript myScript.scpt
If anyone has any ideas how to improve the script below, please let me know.
Script:
tell application "Terminal.app"
activate
set targetWindow to 0
do script "cd
/Users/davidmaciulis/DePaul/DistributedSystems/Assignments/Blockchain/
&& java bc 0"
tell application "System Events" to keystroke "t" using command down
do script "cd
/Users/davidmaciulis/DePaul/DistributedSystems/Assignments/Blockchain/
&& java bc 1" in window 0
delay 0.3
tell application "System Events" to keystroke "t" using command down
do script "cd
/Users/davidmaciulis/DePaul/DistributedSystems/Assignments/Blockchain/
&& java bc 2" in window 0
end tell
Another script. Thanks Chadwick! If the new tab isn't in the correct directory then just re-add "cd /your/directory/here/" before the java command to solve that. //start script tell application "Terminal" activate set targetWindow to 0 do script "cd /Users/Chad/Documents/DePaul/CSC435/assignments/Blockchain/" in window 0 do script "javac -cp \"gson-2.8.2.jar\" *.java" in window 0 do script "java -cp \".:gson-2.8.2.jar\" Blockchain 0 " in window 0 delay 0.3 tell application "System Events" to keystroke "t" using command down do script " java -cp \".:gson-2.8.2.jar\" Blockchain 1 " in front window delay 0.3 tell application "System Events" to keystroke "t" using command down do script " java -cp \".:gson-2.8.2.jar\" Blockchain 2 " in front window end tell //end script If you have any questions or suggestions, feel free to reach out! EDIT: I edited the command for running to include ".:gson-2.8.2.jar\" as it is required
Thanks Kaz! I figured out a super clunky way of getting [Multiple Scripts] going [on Mac]. Hopefully it helps someone else - I'm sure there are lots of ways of improving this, but here's what I came up with. The path to my Blockchain.java file is "Desktop/'CSC_435'/Blockchain", so you can change that depending on what your folder structure looks like osascript <--java.xml.bind Blockchain 0" end tell tell app "Terminal" do script "cd Desktop/'CSC 435'/Blockchain && java --add-modules --> --java.xml.bind Blockchain 1" end tell tell app "Terminal" do script "cd Desktop/'CSC 435'/Blockchain && java --add-modules --> --java.xml.bind Blockchain 2" end tell EOF
Thanks Randy: 2018-02-11 I started searching around on iTerm's website and found a scripting reference page. https://www.iterm2.com/documentation-scripting.html After creating a new profile called BlockChain to direct the new terminals to the correct working directory in iTerm I used the following script that will get all 3 processes running in separate windows and it works like the demo in class. Save the below into scriptName.scpt tell application "iTerm2" create window with profile "BlockChain" command "java bc 0" create window with profile "BlockChain" command "java bc 1" create window with profile "BlockChain" command "java bc 2" end tell You can then run > osascript scriptName.scpt This isn't pretty, but it works for the demo code and I think with some small tweaks should work for the assignment. and Thanks Matt: 2018-02-11 Another solution...not pretty but functional Copy below to allbat.sh run chmod 700 on allbat.sh run ./allbat.sh at command line #!/bin/sh osascript <