code: PackagedProgram buildProgram(ProgramOptions options) throws FileNotFoundException, ProgramInvocationException {
  		String[] programArgs = options.getProgramArgs();
  		String jarFilePath = options.getJarFilePath();
  		List<URL> classpaths = options.getClasspaths();
  
  		if (jarFilePath == null) {
  			throw new IllegalArgumentException("The program JAR file was not specified.");
  		}
  
  		File jarFile = new File(jarFilePath);
  
  		// Check if JAR file exists
  		if (!jarFile.exists()) {
  			throw new FileNotFoundException("JAR file does not exist: " + jarFile);
  		}
  		else if (!jarFile.isFile()) {
  			throw new FileNotFoundException("JAR file is not a file: " + jarFile);
  		}
  
  		// Get assembler class
  		String entryPointClass = options.getEntryPointClassName();
  
  		PackagedProgram program = entryPointClass == null ?
  				new PackagedProgram(jarFile, classpaths, programArgs) :
  				new PackagedProgram(jarFile, classpaths, entryPointClass, programArgs);
  
  		program.setSavepointRestoreSettings(options.getSavepointRestoreSettings());
  
  		return program;
  	}
docs: Creates a Packaged program from the given command line options.
  
  @return A PackagedProgram (upon success)