- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
已经在 JSF 操作 bean 中编写了一个方法,该方法将执行 sqlldr 命令,但问题是在“Process”处出现错误。
但是当我将其作为独立的 Java 程序尝试时,相同的代码可以正常工作并将数据加载到表中。
注意:Oracle和java路径也已设置....
需要帮助...:(
下面是我的代码:
Action Bean 中的方法将在单击按钮时调用
public String executeControlFile() {
try {
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("sqlldr userid=system/root control=d:\\emp\\emp.ctl log=d:\\emp\\empNew2.log");
BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line=null;
while((line=input.readLine()) != null) {
System.out.println(line);
}
int exitVal = pr.waitFor();
System.out.println("Exited with error code "+exitVal);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
错误:
16:55:17,436 ERROR [STDERR] java.io.IOException: Cannot run program "sqlldr": CreateProcess error=2, The system cannot find the file specified
16:55:17,444 ERROR [STDERR] at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
16:55:17,445 ERROR [STDERR] at java.lang.Runtime.exec(Runtime.java:593)
16:55:17,447 ERROR [STDERR] at java.lang.Runtime.exec(Runtime.java:431)
16:55:17,448 ERROR [STDERR] at java.lang.Runtime.exec(Runtime.java:328)
16:55:17,449 ERROR [STDERR] at com.cimm.actionBean.SqlLoaderBean.executeControlFile(SqlLoaderBean.java:134)
16:55:17,450 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
16:55:17,451 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
16:55:17,452 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
16:55:17,453 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:597)
16:55:17,454 ERROR [STDERR] at org.apache.el.parser.AstValue.invoke(AstValue.java:170)
16:55:17,456 ERROR [STDERR] at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
16:55:17,457 ERROR [STDERR] at org.richfaces.ui.application.StateMethodExpressionWrapper.invoke(StateMethodExpressionWrapper.java:76)
16:55:17,459 ERROR [STDERR] at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
16:55:17,460 ERROR [STDERR] at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:84)
16:55:17,461 ERROR [STDERR] at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:98)
16:55:17,462 ERROR [STDERR] at javax.faces.component.UICommand.broadcast(UICommand.java:311)
16:55:17,463 ERROR [STDERR] at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:329)
16:55:17,464 ERROR [STDERR] at org.ajax4jsf.component.AjaxViewRoot.broadcastEventsForPhase(AjaxViewRoot.java:304)
16:55:17,464 ERROR [STDERR] at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:261)
16:55:17,465 ERROR [STDERR] at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:474)
16:55:17,465 ERROR [STDERR] at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77)
16:55:17,466 ERROR [STDERR] at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
16:55:17,466 ERROR [STDERR] at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
16:55:17,467 ERROR [STDERR] at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
16:55:17,467 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
16:55:17,468 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
16:55:17,468 ERROR [STDERR] at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
16:55:17,469 ERROR [STDERR] at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
16:55:17,469 ERROR [STDERR] at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
16:55:17,470 ERROR [STDERR] at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
16:55:17,470 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
16:55:17,471 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
16:55:17,471 ERROR [STDERR] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
16:55:17,472 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
16:55:17,472 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
16:55:17,473 ERROR [STDERR] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
16:55:17,473 ERROR [STDERR] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
16:55:17,474 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
16:55:17,474 ERROR [STDERR] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
16:55:17,475 ERROR [STDERR] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
16:55:17,475 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
16:55:17,476 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
16:55:17,477 ERROR [STDERR] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
16:55:17,477 ERROR [STDERR] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
16:55:17,478 ERROR [STDERR] at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
16:55:17,478 ERROR [STDERR] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
16:55:17,479 ERROR [STDERR] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
16:55:17,479 ERROR [STDERR] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
16:55:17,480 ERROR [STDERR] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
16:55:17,480 ERROR [STDERR] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
16:55:17,480 ERROR [STDERR] at java.lang.Thread.run(Thread.java:619)
16:55:17,481 ERROR [STDERR] Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
16:55:17,482 ERROR [STDERR] at java.lang.ProcessImpl.create(Native Method)
16:55:17,482 ERROR [STDERR] at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
16:55:17,483 ERROR [STDERR] at java.lang.ProcessImpl.start(ProcessImpl.java:30)
16:55:17,483 ERROR [STDERR] at java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
16:55:17,483 ERROR [STDERR] ... 50 more
独立的 Java 程序运行良好,没有任何障碍
public class Main {
public static void main(String args[]) {
try {
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("sqlldr userid=system/root control=d:\\emp\\configuration.ctl log=d:\\emp\\configuration.log");
BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line=null;
while((line=input.readLine()) != null) {
System.out.println(line);
}
int exitVal = pr.waitFor();
System.out.println("Exited with error code "+exitVal);
} catch(Exception e) {
System.out.println(e.toString());
e.printStackTrace();
}
}
}
谢谢...
最佳答案
问题出在您的代码上。
最好使用“cmd.exe/C”并指定环境变量。
最好的方法是 exec(String[] cmdarray, String[] envp, File dir)。你可以查看java文档。
关于java.io.IOException : Cannot run program "sqlldr": CreateProcess error=2, 系统找不到指定的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8430590/
我正在使用 Android Studio。我想在 github 上分享我的项目,但我遇到了很多问题。 首先,Android studio找不到git.exe。我可以用某种方式解决那个问题,但现在是下一
今天,我刚刚使用 Android SDK 管理器更新了 Windows 7 上的 Android SDK,并在 Eclipse 中构建期间开始出现错误 "Error executing aapt: C
由于某种原因创建进程打开cmd即使未指定按 Enter 键会导致命令行中弹出更多 cmd 实例。 #include #include void main() { PROCESS_INFOR
这个问题已经有答案了: Unhandled Error with CreateProcess [duplicate] (2 个回答) 已关闭 4 年前。 我的目标是在我的程序中执行外部可执行文件。首先
当使用 CreateProcess 运行另一个程序时,捕获标准输出的推荐方法是什么?也就是说,将第二个程序打印到 stdout 的任何内容,并以第一个程序可以分析它的数组结束? 这两个程序都是用 C
这个问题在这里已经有了答案: Unhandled Error with CreateProcess [duplicate] (2 个答案) 关闭 4 年前。 我的目标是在我的程序中执行一个外部可执行
我的以下代码有问题: int main(int argc, char **argv) { PROCESS_INFORMATION pi; STARTUPINFO si; prin
forking() 和 CreateProcess(带有所有必需的参数)对于 Linux 和 WinXP 是否分别是相同的? 如果它们不同,那么有人可以解释两种情况下发生的情况的差异吗? 谢谢 最佳答
我正在寻找 Delphi 中 CreateProcess 的快速替代方案,以在 exe 中执行某些计算,包括 XML 中的多个返回值。目前,我正在调用带有特定参数的 C#-exe。这些电话之一需要大约
我有我的主应用程序,从我的主应用程序我将调用另一个 模块(第三方)在我的主应用程序中执行一个小操作,当我调用该模块时..它处理特定时间说 5 秒。而它的处理它在命令窗口中显示了一些信息..现在我的主应
我注意到了这种行为: 当前目录下有2个可执行文件,分别名为“somefile”和“somefile.abc”。 CreateProcessA(NULL, "somefile", ...) - 失败,错
C 初学者警告!!! 我正在用 c 编写一个应用程序,该应用程序应该在“cmd.exe”上下文中运行用户定义的命令并将输出写入变量。例如,如果命令变量是“dir C:\”,则 c 程序应使用 Crea
我正在尝试使用 CreateProcess() 启动服务器。这是代码: int APIENTRY WinMain(HINSTANCE hInstance, H
所以我使用这段代码来启动带有参数的控制台应用程序: #include #include using namespace std; void StartProgram(char argv[]) {
我刚刚安装了代码块 我在安装时遇到错误(无法在 gcc gnu 中配置的路径中找到编译器可执行文件) 所以我安装了编译器MinGW出现这个错误 错误: *CreateProcess:没有这样的文件或目
我正在尝试弄清楚如何使用 CreateProcess() 函数,但我不太精通 C++。我已经尝试了一些方法来尝试让错误消失,但应用程序似乎没有按照我期望的方式执行。 我想做的是将“cmd.exe/c
我有一个应用程序,用户可以在其中将文件上传到远程服务器,接收该文件的同一台服务器应该运行该应用程序。我正在使用 CreateProcess 方法。问题是,文件目录已经在 std::字符串中定义,我很难
如果程序A被用户以管理员身份执行,程序A是否可以使用CreateProcess() windows函数以管理员权限启动程序B?提前谢谢你 最佳答案 答案是肯定的。如果启动程序以提升的方式运行,您可以以
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 9 年前。 Improve t
我正在尝试在 windows 7 上的 windows visual studio 2012 professional 上使用 visual c++ 打开一个程序。代码将顺利运行,但实际上不会打开程序
我是一名优秀的程序员,十分优秀!