2010-01-11 59 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