2010-01-11 62 views
1

我試圖從Java啓動VB應用程序,但我得到運行時錯誤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 = "[email protected]" 
    obAccount.Password = "white" 
    obAccount.Active = True 
    obAccount.MaxSize = 100 ' Allow max 100 megabytes 

    obAccount.Save 

爲什麼我是例外,我怎麼可以運行我的Java程序?

回答

-1

你試過執行你的過程爲「wscript file.vbs」?

+0

或可能用於通用 - 讓Windows處理文件: public final static String PATH =「rundll32 url.dll,FileProtocolHandler」; 文件f =新文件(「C:\\ Documents and Settings \\ Dusk \\ Desktop \\ account.vbs」); 進程p = Runtime.getRuntime()。exec(PATH +「」+ f.getAbsolutePath()); – mkolodziejski 2010-01-11 10:18:00

+0

它的工作。謝謝! – Dusk 2010-01-11 10:38:46

3

.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

開始也給我同樣的錯誤?? – 2015-08-04 05:52:51