【问题标题】:Java CreateProcess error=193, %1 is not a valid Win32 applicationJava CreateProcess 错误=193,%1 不是有效的 Win32 应用程序
【发布时间】:2018-05-03 13:40:04
【问题描述】:

我正在尝试读写可扩展链接格式 (ELF) 下面是我遇到错误的行。

p =  r.exec("./optimizer " + sourceFile + " " + sourceFile + "a" + " " + "--all -i");

运行此行后,我遇到了类似的错误:

java.io.IOException: Cannot run program "./optimizer": CreateProcess             
error=193, %1 is not a valid Win32 application
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at java.lang.Runtime.exec(Runtime.java:620)
at java.lang.Runtime.exec(Runtime.java:450)
at java.lang.Runtime.exec(Runtime.java:347)
at GUIMode.GUIMode.actionPerformed(GUIMode.java:213)

【问题讨论】:

    标签: java swing netbeans promise


    【解决方案1】:

    “%1 不是有效的 Win32 应用程序”消息的几个可能原因包括:

    • 应用程序的路径名不正确,
    • Windows 无法将路径名命名的文件识别为可执行文件,或者
    • 该文件是 32 位可执行文件,但由于某种原因,它正在尝试加载 64 位 DLL。

    在这种情况下,您使用的是可执行文件的相对路径名,因此 JVM 的当前目录可能与您的想法不同......并且optimizer 文件不在该目录中。

    尝试以下方法:

    1. 用绝对路径名替换"./optimizer"

    2. 如果命令(绝对)路径名或sourceFile 参数包含空格,请将命令字符串替换为字符串数组;例如

      exec(new String[]{
             "C:/path/to/optimizer",
             sourceFile, sourceFile + "a", "--all", "-i"});
      
    3. 尝试从命令提示符运行命令。这个想法是检查这不是由不可执行的文件或 DLL 问题引起的。

    【讨论】:

      【解决方案2】:

      很可能,您的代码不在您认为的目录中运行。

      使用此处给出的 OP 代码:how to get current directory in java?

      File directory = new File (".");
      try {
          System.out.println ("Current directory's canonical path: " 
                  + directory.getCanonicalPath()); 
          System.out.println ("Current directory's absolute  path: " 
                      + directory.getAbsolutePath());
      }catch(Exception e) {
          System.out.println("Exceptione is ="+e.getMessage());
      }
      

      现在将其与优化器所在的位置进行比较。

      一般来说,除非您控制 JVM 的调用方式,否则您不能依赖相对路径。

      【讨论】:

        猜你喜欢
        • 2017-01-07
        • 2017-03-16
        • 2012-09-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多