Невозможно запустить приложение VB из Java - PullRequest
1 голос
/ 11 января 2010

Я пытаюсь запустить приложение VB из Java, но получаю ошибку времени выполнения:

Exception in thread "main" java.io.IOException: Cannot run program "C:\Documents and Settings\Dusk\Desktop\accounts.vbs": createProcess error=193, %1 is not  a valid Win32 application
     at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
     at check.main(check.java:8)
Caused by: java.io.IOException: CreateProcess error=193, %1 is not a valid Win32 application
     at java.lang.ProcessImpl.create(NativeMethod)
     at java.lang.ProcessImpl.<init><ProcessImpl.java:81)
     at java.lang.ProcessImpl.start<ProcessImpl.java:30)
     at java.lang.ProcessImpl.start<ProcessImpl.java:452)
     ... 1 more

Вот код Java, который я использую:

public class check{

 public static void main(String[] args) throws Exception
 {


        ProcessBuilder pb = new ProcessBuilder("C:\\Documents and Settings\\Dusk\\Desktop\\account.vbs");
        pb.start();
}
}

и вот файл vb:

Dim obApp
   Set obApp = CreateObject("hMailServer.Application")

   ' Authenticate. Without doing this, we won't have permission
   ' to change any server settings or add any objects to the
   ' installation.   
   Call obApp.Authenticate("Administrator", "password")

   ' Locate the domain we want to add the account to
   Dim obDomain
   Set obDomain = obApp.Domains.ItemByName("yahoo.com")

   Dim obAccount
   Set obAccount = obDomain.Accounts.Add

   ' Set the account properties
   obAccount.Address = "white@yahoo.com"
   obAccount.Password = "white"
   obAccount.Active = True
   obAccount.MaxSize = 100 ' Allow max 100 megabytes

   obAccount.Save  

Почему я это исключение и как я могу запустить свою программу на Java?

Ответы [ 2 ]

3 голосов
/ 11 января 2010

.vbs файлы не являются родными приложениями. Попробуйте запустить start "C:\\Documents and Settings\\Dusk\\Desktop\\account.vbs" вместо файла. Это запустит приложение по умолчанию, связанное с этим расширением, то есть сделает то же самое, что и при двойном щелчке файла в проводнике. Так что это будет:

ProcessBuilder pb = new ProcessBuilder("start", "C:\\Documents and Settings\\Dusk\\Desktop\\account.vbs");
pb.start();
0 голосов
/ 11 января 2010

Вы пытались выполнить ваш процесс как "wscript file.vbs"?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...