Начните изменять это:
new(BufferedReader(newInputStreamReader(
Кому:
new BufferedReader(new InputStreamReader(
Скомпилируйте и посмотрите, если у вас все еще есть проблема
edit
Также, есть веская причина, по которой вы не должны ловить Exception, вы также ловите ошибки программирования, такие как NullPointerException
while( !temp.equals(null)) { //Throws NullPointerExceptin when temp is null
Измените его с помощью:
while( temp != null ) { //!temp.equals(null)) {
Наконец, вам не нужно «выходить», поскольку вы на самом деле не находитесь внутри cmd.
Исправленная версия
Эта версия работает в соответствии с вашими намерениями:
import java.io.*;
class Rt {
public static void main(String args[]) throws Exception {
Runtime RT = Runtime.getRuntime();
String command = "javap java.lang.String" ;
File file = new File("write.txt");
Writer output = new BufferedWriter(new FileWriter(file));
BufferedReader br = new BufferedReader(new InputStreamReader(RT.exec(command).getInputStream()));
String temp = br.readLine();
while( temp != null ) { //!temp.equals(null)) {
output.write(temp);
temp = br.readLine();
}
output.close();
//RT.exec("exit");
}
}
edit Заключительные замечания:
Начиная с Java 1.5 предпочтительный способ вызова команды - это использование ProcessBuilder , и лучше использовать массив строк вместо одной строки (или varargs),
Когда вы строите свой вывод, вы можете избавиться от объекта файла и передать имя файла непосредственно в файлописатель.
При чтении строки вы можете назначить и оценить условие.
Соглашения Java о кодировании предлагают использовать открывающую скобку в том же виде.
Это будет моя версия вашего кода:
class Rt {
public static void main(String args[]) throws Exception {
Writer output = new BufferedWriter(new FileWriter ( "write.txt"));
InputStream in = new ProcessBuilder("javap", "java.lang.String").start().getInputStream();
BufferedReader br = new BufferedReader( new InputStreamReader(in));
String line = null;
while( ( line = br.readLine() ) != null ) {
output.write( line );
}
output.close();
}
}
Возможно, потребуется еще немного поработатьНадеюсь, это поможет вам.