当前位置: 首页 > 面试题库 >

Runtime.getRuntime()。exec()

连俊智
2023-03-14
问题内容

仅当数据库名称包含(新数据库(myid)等)时,我才能读取文件。我给出以下示例代码:

dumpCommand = "C:/Program Files/MySQL/MySQL Server 5.0/bin/mysqldump -h"+hostName+user+databaseName;
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(dumpCommand);                     
InputStream in = proc.getInputStream();              
BufferedReader br=new BufferedReader(new InputStreamReader(in));
String line =null;

 while((line=br.readLine())!=null)
{
//able to read line only when database name like abc,datastore etc...
System.out.println(line);
    }

假设我的数据库名称de mo是指我在打印行时得到的数据库名称仅是de。数据库名称带有空白时可以吗?


问题答案:

您熟悉exec双引号错误吗?(用于Runtime.execProcessBuilder

你可以试试:

Runtime.getRuntime().exec(new String[] {
  "\"C:/Program Files/MySQL/MySQL Server 5.0/bin/mysqldump\"", 
  "-h", 
  hostName+user+databaseName});

只需确保您不必传递的任何参数都包含双引号( 而不 是以双引号开头)
(请参见
错误6511002

任何类似的参数:

mykey="my value with space"

将在 内部 (通过getRuntime()实现)更改为

"mykey="myvalue with space""

如果是这种情况,则需要标记该参数:

{"mykey=\"my\"" , "\"value with space\""}


 类似资料:
  • 问题内容: 我正在尝试检查程序的性能。我参考这篇文章以获得操作系统级别的系统信息。当执行时,我得到的答案 4 。我读了availableProcessors(),但它告诉我们该方法返回处理器数量 谁能解释处理器数量的含义? 为什么得到4? 我正在使用Windows 7核心i5 4gp。 问题答案: 处理器的数量基本上就是能够运行您的代码的执行引擎的数量。i5变体之一是4核CPU i5-7系列。它们

  • 问题内容: 任何人都可以对如何最好地使用EasyMock进行呼叫提出任何建议吗? 我可以将调用移到另一个实现接口的类中的方法中,而不是在理想环境中。 我想知道是否还有其他建议? 问题答案: 你的班级不应该打电话。它应该期望将a 设置为其依赖项,并对其进行处理。然后,在测试中,您可以轻松提供一个模拟并将其设置为依赖项。 作为旁注,我建议您观看有关面向对象设计的本课程以提高可测试性。 更新: 我没有看

  • 问题内容: 我正在执行一个命令,该命令向我返回文件的修订号;’文档名称’。但是,如果执行命令时遇到问题,则应用程序将挂断。我该怎么做才能避免这种情况?请在下面找到我的代码。 问题答案: 我想问题是您只在读取InputStream而没有在读取ErrorStream。您还必须注意并行读取两个流。可能发生这种情况,当前从输出流中管道传输的数据已填满OS缓冲区,您的exec命令将自动挂起,以使您的阅读器有

  • 问题内容: 我正在尝试通过使用删除垃圾文件 只要我不使用通配符,它​​就可以正常工作,即,这有效: 而以下内容返回“没有此类文件或目录”: 我应该能够做到这里概述的所有美好的事情,对吗? 问题答案: 我可能建议您让Java为您执行此操作? 使用file.listFiles()获取文件列表 如果需要,使用file.getName()。contains(string)对其进行过滤 遍历执行file.d

  • 问题内容: 此代码将执行一个外部exe应用程序。 如果我想执行外部Java文件怎么办?可能吗?例如以下命令: 该代码在java和cmd提示符下不起作用。如何解决呢? 问题答案: 首先,您的命令行看起来不正确。执行命令与批处理文件不同,它不会执行一系列命令,而只会执行一个命令。 从外观上看,您正在尝试更改要执行的命令的工作目录。一个更简单的解决方案是使用,它将允许您指定给定命令的起始目录… 例如…

  • myStr是上面我要执行的整个命令吗? 我已经尝试过的事情: 给了我一个错误: 它运行起来像一个魅力,但不是通过runtime.exec()。