2016-09-19 1 views
0

У меня есть сценарий VB (myVB2.vbs), который в основном запускает макрос в excel и сохраняет excel. Вот мой VB скрипт (myVB2.vbs)Как передать несколько параметров в файл .vbs из Java

Dim objExcel, objWorkbook, filePath 

Set filePath = Wscript.Arguments(0) 
Set objExcel = CreateObject("Excel.Application") 
'Set objWorkbook = objExcel.Workbooks.Open("C:\Writter\Excel.xlsm") 
Set objWorkbook = objExcel.Workbooks.Open(filePath) 
objExcel.Visible = True 
objExcel.Run "ChartUpdate" 
objWorkbook.Save 
objExcel.Quit 

Set objWorkbook = Nothing 
Set objExcel = Nothing 

WScript.Quit 

Теперь мне нужно будет, чтобы вызвать этот .vbs файл из Java, передавая аргумент пути файла первенствовать в VBScript. С приведенным ниже фрагментом кода Java я не могу передать аргумент пути к файлу. Я получаю ошибку - Нет механизма сценария для расширения файла «.xlsm».

public static void main(String[] args) throws IOException { 
    String scriptpath = System.getProperty("user.dir") + "\\src\\com\\domain\\function\\resources\\myVB2.vbs"; 
    String destinationlocation ="C:\\Writter\\Excel.xlsm" ; 

     Runtime rt = Runtime.getRuntime(); 
      try { 
       Runtime.getRuntime().exec("wscript"+ scriptpath+" "+destinationlocation); 
      } 
      catch(IOException e) { 
       e.printStackTrace(); 
      } 

    } 
+1

Похоже, вам может понадобиться пространство внутри 'String'? Попробуйте 'Runtime.getRuntimee(). Exec (" wscript "+ scriptpath +" "+ destinationlocation);' – Orin

+0

Спасибо, Орин, ты был прав. И еще одна причина заключалась в том, что я дал набор для filepath. Как только я удалил набор для пути к файлу, он работал для меня. – Vinmee

ответ

1

Использование ProcessBuilder вместо .exec:

Process p = new ProcessBuilder("wscript", scriptpath, destinationlocation).start(); 
0

Спасибо всем за respone, моя проблема решена мое добавление «» в WScript, а также удаление установить с FilePath в myVB2.vbs

Смежные вопросы