Java虚拟机读写进程数据 Process

aa663325 2017-02-28 09:02:53
问题描述:运行以下程序无法得到out.txt文件,我在代码标红处加了断点,结果发现根本没有运行到此处。
问题:1.为什么不能产生out.txt文件,哪里出问题了?
2.为什么断点不起作用
谢谢!


import java.io.*;
import java.util.*;

public class WriteToProcess
{
public static void main(String[] args)
throws IOException
{
// 运行java ReadStandard命令,返回运行该命令的子进程
Process p = Runtime.getRuntime().exec("java ReadStandard");
try(
// 以p进程的输出流创建PrintStream对象
// 这个输出流对本程序是输出流,对p进程则是输入流
PrintStream ps = new PrintStream(p.getOutputStream()))
{
// 向ReadStandard程序写入内容,这些内容将被ReadStandard读取
ps.println("普通字符串");
ps.println(new WriteToProcess());
}
}
}
// 定义一个ReadStandard类,该类可以接受标准输入,
// 并将标准输入写入out.txt文件。
class ReadStandard
{
public static void main(String[] args)
{
try(
// 使用System.in创建Scanner对象,用于获取标准输入
Scanner sc = new Scanner(System.in);
PrintStream ps = new PrintStream(new FileOutputStream("out.txt")))
{
// 增加下面一行将只把回车作为分隔符
sc.useDelimiter("\n");
// 判断是否还有下一个输入项
while(sc.hasNext())
{
// 输出输入项
ps.println("键盘输入的内容是:" + sc.next());
}
}
catch(IOException ioe)
{
ioe.printStackTrace();
}
}
}
...全文
298 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_35527631 2017-08-04
  • 打赏
  • 举报
回复
我用cmd编译,运行可以的,用exlipse就不行!!??
qq_35527631 2017-08-04
  • 打赏
  • 举报
回复
我也想知道为什么!!!
LS1firesoar 2017-03-02
  • 打赏
  • 举报
回复
会很慢 用DEBUG模式启动才能调试
oO临时工Oo 2017-03-01
  • 打赏
  • 举报
回复
Process p = Runtime.getRuntime().exec("java ReadStandard"); 相当于在CMD中执行java ReadStandard,如果CMD中都不能执行成功,那Java调用也必须失败。 至于原理: 在windows环境变量中要能找到java这个命令; 在windwos环境变量中,JavaHome、classpath的配置都不可少,而且ReadStandard这个类必须在classpath中; ReadStandard必须以public class ReadStandard的方式声明,必须要有main方法。
aa663325 2017-03-01
  • 打赏
  • 举报
回复
引用 1 楼 lc_apple 的回复:
因为你有两个main方法!
这里是读取其他程序的进程,所以其他程序有main方法是可以的吧。
aa663325 2017-03-01
  • 打赏
  • 举报
回复
这里是读取其他程序的进程,所以其他程序有main方法是可以的吧。
lc_apple 2017-02-28
  • 打赏
  • 举报
回复
因为你有两个main方法!

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧