Back to project page mobilecloud.
The source code is released under:
Apache License
If you think the Android project mobilecloud listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package com.fastnu.thesis; /*w w w .ja va 2 s. c o m*/ /** * Copyright (c) 2011, FAST NU and/or its affiliates. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * - Neither the name of FAST-NU or the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * * @author Muhammad Ali * @author Jawwad Shamsi * @version 0.1 * @since 0.1 */ import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; public class ProcessHelper { // private static Logger log = Logger.getLogger(ProcessHelper.class); private List<Process> processes; public ProcessHelper() { processes = new ArrayList<Process>(); } public Process startNewJavaProcess(final String optionsAsString, final String mainClass, final String[] arguments) throws IOException { ProcessBuilder processBuilder = createProcess(optionsAsString, mainClass, arguments); Process process = processBuilder.start(); processes.add(process); // log.debug("Process " + process.toString() + " has started"); return process; } private ProcessBuilder createProcess(final String optionsAsString, final String mainClass, final String[] arguments) { String jvm = System.getProperty("java.home") + File.separator + "bin" + File.separator + "java"; String classpath = System.getProperty("java.class.path"); // log.debug("classpath: " + classpath); // String workingDirectory = System.getProperty("user.dir"); String[] options = optionsAsString.split(" "); List<String> command = new ArrayList<String>(); command.add(jvm); command.addAll(Arrays.asList(options)); command.add(mainClass); command.addAll(Arrays.asList(arguments)); ProcessBuilder processBuilder = new ProcessBuilder(command); Map<String, String> environment = processBuilder.environment(); environment.put("CLASSPATH", classpath); return processBuilder; } public void killProcess(final Process process) { process.destroy(); } /** * Kill all processes. */ public void shutdown() { // log.debug("Killing " + processes.size() + " processes."); for (Process process : processes) { killProcess(process); } } }