I'm doing the modification of MOSS operating system simulator for scheduling part. I add a class for creating threads and display the thread name and priority. When i want to run the code it comes out the error" Exception occurred executing command line.
Cannot run program "C:\Program Files\Java\jre6\bin\javaw.exe" (in directory "C:\Users\Sing\workspace\Moss"): CreateProcess error=740, The requested operation requires elevation"
Code:
package sched; // This file contains the main() function for the Scheduling // simulation. Init() initializes most of the variables by // reading from a provided file. SchedulingAlgorithm.Run() is // called from main() to run the simulation. Summary-Results // is where the summary results are written, and Summary-Processes // is where the process scheduling summary is written. // Created by Alexander Reeder, 2001 January 06 import java.io.*; import java.util.*; import java.lang.*; public class Scheduling { private static int processnum = 5; private static int meanDev = 1000; private static int standardDev = 100; private static int runtime = 1000; private static Vector processVector = new Vector(); private static Results result = new Results("null","null",0); private static String resultsFile = "Summary-Results"; private static void Init(String file) { File f = new File(file); String line; String tmp; int cputime = 0; int ioblocking = 0; double X = 0.0; try { //BufferedReader in = new BufferedReader(new FileReader(f)); DataInputStream in = new DataInputStream(new FileInputStream(f)); while ((line = in.readLine()) != null) { if (line.startsWith("numprocess")) { StringTokenizer st = new StringTokenizer(line); st.nextToken(); processnum = Common.s2i(st.nextToken()); } if (line.startsWith("meandev")) { StringTokenizer st = new StringTokenizer(line); st.nextToken(); meanDev = Common.s2i(st.nextToken()); } if (line.startsWith("standdev")) { StringTokenizer st = new StringTokenizer(line); st.nextToken(); standardDev = Common.s2i(st.nextToken()); } if (line.startsWith("process")) { StringTokenizer st = new StringTokenizer(line); st.nextToken(); ioblocking = Common.s2i(st.nextToken()); X = Common.R1(); while (X == -1.0) { X = Common.R1(); } X = X * standardDev; cputime = (int) X + meanDev; processVector.addElement(new sProcess(cputime, ioblocking, 0, 0, 0)); } if (line.startsWith("runtime")) { StringTokenizer st = new StringTokenizer(line); st.nextToken(); runtime = Common.s2i(st.nextToken()); } } in.close(); } catch (IOException e) { /* Handle exceptions */ } } private static void debug() { int i = 0; System.out.println("processnum " + processnum); System.out.println("meandevm " + meanDev); System.out.println("standdev " + standardDev); int size = processVector.size(); for (i = 0; i < size; i++) { sProcess process = (sProcess) processVector.elementAt(i); System.out.println("process " + i + " " + process.cputime + " " + process.ioblocking + " " + process.cpudone + " " + process.numblocked); } System.out.println("runtime " + runtime); } (Begining of the part i modify) public static class StartThread extends Thread { Thread t; public void startThread() { System.out.println("Starting the child thread"); start(); } public void run() { t = Thread.currentThread(); System.out.println(Thread.currentThread()); System.out.println("Name of the thread is:" + t.getName()); System.out.println("Priority of the thread is:" + t.getPriority()); System.out.println("The current thread is alive:" + t.isAlive()); t.setName("First"); t.setPriority(10); //After change thread name and priority System.out.println("Thread name after changed:" + t.getName()); System.out.println("Thread priority after changed:" + t.getPriority()); t.stop(); System.out.println("Thread alive status:" + t.isAlive()); } static class DisplayThread extends Thread { public static void main(String args[]) { StartThread ob = new StartThread(); System.out.println("Main thread name:" + Thread.currentThread().getName()); ob.startThread(); Thread maint = Thread.currentThread(); System.out.println("Thread alive status:" + maint.isAlive()); System.out.println(System.getProperty("user.dir")); (End of the part i modify) int i = 0; if (args.length != 1) { System.out.println("Usage: 'java Scheduling <INIT FILE>'"); System.exit(-1); } File f = new File(args[0]); if (!(f.exists())) { System.out.println("Scheduling: error, file '" + f.getName() + "' does not exist."); System.exit(-1); } if (!(f.canRead())) { System.out.println("Scheduling: error, read of " + f.getName() + " failed."); System.exit(-1); } System.out.println("Working..."); Init(args[0]); if (processVector.size() < processnum) { i = 0; while (processVector.size() < processnum) { double X = Common.R1(); while (X == -1.0) { X = Common.R1(); } X = X * standardDev; int cputime = (int) X + meanDev; processVector.addElement(new sProcess(cputime,i*100,0,0,0)); i++; } } result = SchedulingAlgorithm.Run(runtime, processVector, result); try { //BufferedWriter out = new BufferedWriter(new FileWriter(resultsFile)); PrintStream out = new PrintStream(new FileOutputStream(resultsFile)); out.println("Scheduling Type: " + result.schedulingType); out.println("Scheduling Name: " + result.schedulingName); out.println("Simulation Run Time: " + result.compuTime); out.println("Mean: " + meanDev); out.println("Standard Deviation: " + standardDev); out.println("Process #\tCPU Time\tIO Blocking\tCPU Completed\tCPU Blocked"); for (i = 0; i < processVector.size(); i++) { sProcess process = (sProcess) processVector.elementAt(i); out.print(Integer.toString(i)); if (i < 100) { out.print("\t\t"); } else { out.print("\t"); } out.print(Integer.toString(process.cputime)); if (process.cputime < 100) { out.print(" (ms)\t\t"); } else { out.print(" (ms)\t"); } out.print(Integer.toString(process.ioblocking)); if (process.ioblocking < 100) { out.print(" (ms)\t\t"); } else { out.print(" (ms)\t"); } out.print(Integer.toString(process.cpudone)); if (process.cpudone < 100) { out.print(" (ms)\t\t"); } else { out.print(" (ms)\t"); } out.println(process.numblocked + " times"); } out.close(); } catch (IOException e) { /* Handle exceptions */ } System.out.println("Completed."); } } } } [#][/#]
Is there something wrong in the code?