Hi Could you separate the Java code with some extension, please? The codes might
ID: 3871085 • Letter: H
Question
Hi
Could you separate the Java code with some extension, please?
The codes might be something like these:
UserInput.java
CallProcess.java
Main.java
And other files whichever needed
Thank you.
My code is here:(Its Java code and I am using NetBeans for this code)
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.util.Arrays;
/**
*
* @author narayanthapa
*/
public class NewClass {
public static void main(String [] args) throws IOException {
String[] command = {"ls"};
ProcessBuilder probuilder = new ProcessBuilder( command );
//You can set up your work directory
probuilder.directory(new File("/Users/narayanthapa/Desktop"));
Process process = probuilder.start();
//Read out dir output
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
System.out.printf("Output of running %s is: ",
Arrays.toString(command));
while ((line = br.readLine()) != null) {
System.out.println(line);
}
//Wait to get exit value
try {
int exitValue = process.waitFor();
System.out.println(" Exit Value is " + exitValue);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Explanation / Answer
package com.vassarlabs.test.practise;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Arrays;
/**
*
* @author narayanthapa
*/
public class NewClass {
public static void main(String [] args) throws IOException {
String[] commandList = {"ls"};
UserIOHandler userIOHandler = new UserIOHandler();
UserProcessCreator processCreator = new UserProcessCreator(commandList, "/Users/narayanthapa/Desktop");
processCreator.startProcess();
userIOHandler.handleEvent(processCreator);
}
}
class UserProcessCreator {
private ProcessBuilder proBuilder;
private Process process;
private String[] commandList;
public UserProcessCreator(String[] commandList, String directory) {
this.proBuilder = new ProcessBuilder(commandList);
this.proBuilder.directory(new File(directory));
this.commandList = commandList;
}
public void setDirecotry(String directory) {
this.proBuilder.directory(new File(directory));
}
public void startProcess()
throws IOException {
this.process = proBuilder.start();
}
public Process getProcess() {
return this.process;
}
public String[] getCommand() {
return this.commandList;
}
public void waitFor() {
try {
int exitValue = process.waitFor();
System.out.println(" Exit Value is " + exitValue);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
class UserIOHandler {
public UserIOHandler() {
super();
}
public void handleEvent(UserProcessCreator processCreator)
throws IOException {
Process process = processCreator.getProcess();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
System.out.printf("Output of running %s is: ", Arrays.toString(processCreator.getCommand()));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
processCreator.waitFor();
}
}