Ошибка при выполнении скрипта с использованием JavaCode - PullRequest
0 голосов
/ 07 июля 2011

Привет, я использую следующий код Java и пример сценария NSIS, когда я запускаю этот код, я получил ошибку.

Мой 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

Почему так происходит, как решить эту ошибку ?????

1 Ответ

0 голосов
/ 07 июля 2011

Вы используете код Java из той же директории, что и файл makensis.exe?Если нет, то вам нужно будет использовать абсолютный путь

...