在java中执行mutli命令行

时间:2015-04-30 17:29:35

标签: java command-line usb

我需要一个多命令来将CMD带到它运行的光盘的根目录。

这是USB上结构的外观

<?php $args = array( 'orderby' => 'name', 'parent' => 0 );
$categories = get_categories( $args );
foreach ( $categories as $category ) {

$homePosts = array(
'post_type'=> 'post',
'post_status' => 'publish',
'category'         => $category->cat_ID,
'order' => 'DESC',
'tax_query' => array(
     array(
    'taxonomy' => 'post_format',
    'field' => 'slug',
    'terms' => array( 'homePost' )
    )
    )
);

    $asides = get_posts( $homePosts );
    if ( count($asides) ) {
        foreach ( $asides as $homePosts ) {
            '<p>' + 'Test' + '</p>' ;
        }
    }

}
?>

这就是“事件”的样子:

\data
\data\commands
\Java
\Java\bin
App.jar
App.bat

这在运行App.jar文件并“使用”它自己安装在计算机上的java时效果很好。

但是当我尝试使用我在usb上安装的java来运行它时,它将无法工作。 (guide to install java on usb

app.bat文件:

 String command = "cmd /c  cd\\data\\commands && wscript \"invisible.vbs\" \"Ready2Go.bat\"";
    try { 

        Process p = Runtime.getRuntime().exec(command);

    } catch (Exception e) {
        e.printStackTrace();
    }    

所以我需要一个命令来离开\ java \ bin目录。 (因为它来自那里,我认为程序现在正在运行)然后运行我的命令。

我试过了:

set Path=\Java\bin;%%Path%%
java -jar app.jar

但没有太多运气。 我真的希望你明白我的意思

1 个答案:

答案 0 :(得分:0)

像这样编写一个启动批处理start.bat

@echo off

rem change to this batch's folder
pushd "%~dp0"

set Path="%~dp0\Java\bin";%%Path%%
set JAVA_HOME=%~dp0\Java
java -jar App.jar

popd

并将其作为\data\commands\start.bat

执行

使用ProcessBuilder并设置directory - 属性,从java设置进程的当前路径。查看此处的示例

How to set working directory with ProcessBuilder