java - 在java中使用cmd命令打印文件

标签 java cmd

我正在尝试从我的 java swing 应用程序打印记事本文件。 但是我似乎无法让它工作。

当我在命令提示符中输入此命令时,它会打印给定的记事本文件。 start /min notepad /p C:\score-programma\boem.txt

但是,当我尝试在 java 中执行此操作时,它说找不到该文件。

java.io.IOException: Cannot run program "start": CreateProcess error=2, Het systeem kan het opgegeven bestand niet vinden at java.lang.ProcessBuilder.start(Unknown Source) at java.lang.Runtime.exec(Unknown Source) at java.lang.Runtime.exec(Unknown Source) at nl.daalhuisen.model.Model.print(Model.java:184) at Apl$1$1.actionPerformed(Apl.java:86) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$200(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Caused by: java.io.IOException: CreateProcess error=2, Het systeem kan het opgegeven bestand niet vinden at java.lang.ProcessImpl.create(Native Method) at java.lang.ProcessImpl.(Unknown Source) at java.lang.ProcessImpl.start(Unknown Source) ... 41 more

这是我运行的java代码:

String[] args = {"start", "/min", "notepad", "/p", "C:\score-programma\boem.txt"}; Runtime.getRuntime().exec(args);

我也尝试过 <br/> String[] args = {"cmd.exe", "start", "/min", "notepad", "/p", "C:\score-programma\boem.txt"};

这不会产生相同的错误,但什么也没有发生。 我在这里缺少什么?

最佳答案

startcmd 的内置命令。它不是可执行文件。你必须运行:

cmd /c start notepad /p c:\etc...

/c 标志是告诉 cmd 您正在尝试运行其他程序所必需的。如果您不传入该值,则 startnotepad 等将被视为 cmd 本身的参数。

关于java - 在java中使用cmd命令打印文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24806928/

相关文章:

batch-file - 由于某种未知原因,变量未插入另一个变量 : Converting text to binary

java - 将相同的对象存储在不同的数组中

java - Spring Data MongoDB - 使用嵌套字段投影进行聚合

java - ADAL4j java 代理问题

powershell - 从 Windows CMD 运行 PowerShell 命令的命令

python - Py2Exe: "error: invalid command: py2exe"

java - 如何运行打包好的java文件

powershell - 如何在Powershell中获取系统上本地用户的纯文本列表/数组?

java - 代码从 Eclipse 构建得很好,但从 Jenkins 抛出编译时错误

java - 没有 if/else 或 switch 的计算器