We aim to execute a Java Program for simulation using SSJ on server. It will be particularly helpful if the simulation takes a long time to run. This program needs two external libraries ssj.jar and optimization-1.1.jar. We do this job in the following 3 steps.

  • Step 1. Copy files from local to server
  • Step 2. Execute Java Program on server
  • Setp 3. Copy output files from server to local

Copy files from Local to Server

Using scp command.

$ scp <SourceFile> <user@host>:<directory>

Type the following commands line by line in terminal to copy files “SimQueue.java”, “ssj.jar” and “optimization-1.1.jar” from local to server.

$ scp ~/Desktop/SimQueue.java eshan@maxwell.ielm.ust.hk:~/Simulation/
$ scp ~/Desktop/ssj.jar eshan@maxwell.ielm.ust.hk:~/Simulation/
$ scp ~/Desktop/optimization-1.1.jar eshan@maxwell.ielm.ust.hk:~/Simulation/

Instead of copying files one by one, you can copy a folder.

$ scp -r <SourceFolder> <user@host>:<directory>

For example, the following command copies folder “Example”, together with all the files under this folder, to the server.

$ scp -r ~/Desktop/Example eshan@maxwell.ielm.ust.hk:

Execute Java Program on server

Using javac command first to compile Java source code into Java bytecodes.

javac <options> <filename>.java

-cp is a commonly used option. If the compiler needs to refer to your own classes, then you need to specify their location with this -cp option.

Using java command to interprete the Java bytecodes.

java <options> <filename>

For example, the following commands execute the “SimQueue” java program.

javac -cp optimization-1.1.jar:ssj.jar:. SimQueue.java
java -cp optimization-1.1.jar:ssj.jar:. SimQueue

Note that if you log in the server via ssh and start a process, the process will get killed once you abort the remote connection. To leave job running in background you can use nohup command.

nohup <command-name> &

For example, we can execute the “SimQueue” java program as follows.

javac -cp optimization-1.1.jar:ssj.jar:. SimQueue.java
nohup  java -cp optimization-1.1.jar:ssj.jar:. SimQueue  &

Copy files from Server to Local

Similar to the part Copy files from Local to Server.

$ scp <user@host>:<SourceFile> <local directory>
$ scp -r <user@host>:<SourceFolder> <local directory>

For example, the following command copies file “output.txt” to local.

$ scp eshan@maxwell.ielm.ust.hk:~/Simulation/output.txt ~/Desktop/