2011-07-07 83 views
0

您好我使用下面的java代码和一个示例NSIS脚本,而我运行此代码时出现错误。使用JavaCode执行脚本时出错

我JavaCode:

import java.io.IOException; 


public class SampleClass { 

    /** 
    * @param args 
    */ 
    Process p; 
    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     Runtime r=Runtime.getRuntime(); 
     try { 
      r.exec("makensis.exe myscript.nsi"); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 

} 

和我的NSIS脚本是

OutFile "Your ComputerName.exe" 
Name "Your ComputerName" 
Caption "ComputerName" 
XPStyle "on" 

Function .onInit 
    ReadRegStr $0 HKLM "System\CurrentControlSet\Control\ComputerName\ActiveComputerName" "ComputerName" 
    StrCmp $0 "" win9x 
    StrCpy $1 $0 4 3 
    MessageBox MB_OK "Your ComputerName : $0" 
    Goto done 
win9x: 
    ReadRegStr $0 HKLM "System\CurrentControlSet\Control\ComputerName\ComputerName" "ComputerName" 
    StrCpy $1 $0 4 3 
    MessageBox MB_OK "Your ComputerName : $0" 
done: 
    Quit ; placed here so we quit the installer; we dont need the other pages for this example. 
FunctionEnd 

Section "-boo" 
; 
SectionEnd 

; rest of script 
而我执行我得到了以下错误

java.io.IOException: Cannot run program "makensis.exe": CreateProcess error=2, The system cannot find the file specified 
    at java.lang.ProcessBuilder.start(Unknown Source) 
    at java.lang.Runtime.exec(Unknown Source) 
    at java.lang.Runtime.exec(Unknown Source) 
    at java.lang.Runtime.exec(Unknown Source) 
    at SampleClass.main(SampleClass.java:14) 
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified 
    at java.lang.ProcessImpl.create(Native Method) 
    at java.lang.ProcessImpl.<init>(Unknown Source) 
    at java.lang.ProcessImpl.start(Unknown Source) 
    ... 5 more 

为什么会发生如何解决这个错误?????

回答

0

您是否正在运行与makensis.exe文件相同的目录下的java代码?如果没有,那么你将需要使用绝对路径

+0

您好scobal,是否正确r.exec(“C:/Users/FSSD/workspace/Snake/makensis.exe sample.nsi”);我也试过这个,但它不起作用 – Aerrow

+0

当你使用绝对路径时你会得到同样的异常吗? –

+0

雅,是否正确..这里sample.nsi是我的脚本文件 – Aerrow