solution_directory |- student1 |- classA.java |- ... |- student2 |- ... |_ student3 |- ...
Download the JAR and include it into your Java project. Alternatively use Maven (note: there is no public Maven repo including MOJI as of writing this).
import java.io.File; import java.util.Collection; import java.net.URL; import org.apache.commons.io.FileUtils; import it.zielke.moji.SocketClient; public class QuickStart { public static void main(String[] args) throws Exception { // a list of students' source code files located in the prepared // directory. Collection<File> files = FileUtils.listFiles(new File( "C:\\temp\\solution_directory"), new String[] { "java" }, true); // a list of base files that was given to the students for this // assignment. Collection<File> baseFiles = FileUtils.listFiles(new File( "C:\\temp\\base_directory"), new String[] { "java" }, true); //get a new socket client to communicate with the MOSS server //and set its parameters. SocketClient socketClient = new SocketClient(); //set your MOSS user ID socketClient.setUserID("123456789"); //socketClient.setOpt... //set the programming language of all student source codes socketClient.setLanguage("java"); //initialize connection and send parameters socketClient.run(); // upload all base files for (File f : baseFiles) { socketClient.uploadBaseFile(f); } //upload all source files of students for (File f : files) { socketClient.uploadFile(f); } //finished uploading, tell server to check files socketClient.sendQuery(); //get URL with MOSS results and do something with it URL results = socketClient.getResultURL(); System.out.println("Results available at " + results.toString()); } }