• ベストアンサー

javaのProcessBuilderとant

javaから外部コマンドを実行する際にProcessBuilderを使っているのですが 下記の引数ではantを実行できませんでした ProcessBuilder("ant","-f","build.xmlのパス"); パスは通しているのでコマンドプロンプトからは同じ内容で実行できました antを実行する際に使用するファイルもわからないので絶対パスでの指定の仕方もわかりません 他の外部コマンドを使う際もProcessBuilderを使っているのでProcessBuilderを使った解決方法があれば教えてください

質問者が選んだベストアンサー

  • ベストアンサー
  • maiko0318
  • ベストアンサー率21% (1483/6970)
回答No.2

ProcessBuilder pb = new ProcessBuilder("java", "-version"); Process p = pb.start(); こういう使い方ですね。

m83k
質問者

補足

説明不足ですいません pb.start() まで記入済みでjavaやjavacなどのほかの外部コマンドは実行できてます

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

ん~, ドキュメントを斜め読みした限りでは オブジェクトを作るだけでは実行しない ようにしか見えないんだけど....

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • AntでのJunitの試験(II)

    先ほどの「AntでのJunit試験」の続きです。(ベストアンサーを押してしまったため、返信が受けられなくなったため、新規にたちあげました。) 情報ありがとうございます。 ご指摘のように、EclipseのUnitテストで使っている、org.hamcrest.coreのjarファイルを build\libの下に置いて走らせるとJunitの試験はパスするようになりました。 ありがとうございました。 後、ひとつだけ分かれば教えていただきたいのですが、 現在、コマンドプロンプトのbuild.xmlが置いてあるディレクトリから、>Ant unit-test を実行すると、Junitの試験はパスして、<junitreport>の記述でテスト結果をはいてくれて全て OKなのですが、 Eclipseのアウトラインからunit-testを右クリックして->実行->Antビルド を実行させると、Junitの試験はパスするのですが、<junitreport>の所で、 Error! staticでないJava関数'replace'の最初の引数は無効なオブジェクトの参照です。 Error! スタイルシートをコンパイルできませんでした。 Fatal Error! データ型'void'を'reference'に変換できません。Cause: データ型'void'を'reference'に変換できません。 となって、テスト結果のはき出しには失敗してしまうようなのです。 コマンドプロンプトで実行した場合は、ant-1.9.2を使っているのですが、Eclipseのデフォルトの プラグインのものはant-1.8.4のものを使っているようです。 Antタスクのjunitreportが使えるAntのヴァージョンのようなものがあるのでしょうか? また、1.8.4でもjunitreportが使えるような書き方とかあるのでしょうか?

    • ベストアンサー
    • Java
  • cygwin上でantコマンドが途中で止まる

    cygwin上でもantが動かなかった理由を教えて下さい。 ・環境 windows7 ・経緯 windowsコマンドプロンプト上でant実行時に上記のエラーに遭遇 原因としてantコマンドではmakefileの生成などを行うスクリプトファイルをwindows上で動かせないというものでした。 そこでcygwin上で動かしてみたものの全く同様のエラーが発生 ただし、cygwin上でcvc3フォルダまで移動し、 ./configure /usr/bin/make と実行すると動きました。 [コマンドと結果(一部抜粋)] C:\Users\mar\Dropbox\js-symbolic-executor\js-symbolic-executor>ant > ant1.txt BUILD FAILED C:\Users\mar\Dropbox\js-symbolic-executor\js-symbolic-executor\build.xml:105: Execute failed: ava.io.IOException: Cannot run program ".\configure" (in directory "C:\Users\mar\Dropbox\js-s bolic-executor\cvc3"): CreateProcess error=2, 指定されたファイルが見つかりません。 at java.lang.ProcessBuilder.start(ProcessBuilder.java:1051) at java.lang.Runtime.exec(Runtime.java:620) [ant実行対象のbuilt.xml] <target name="configure-cvc3" depends="check-config.status" unless="config.status.present"> <property name="arith" value="gmp"/> <exec dir="../cvc3" executable="./configure"> (←build.xml:105行目の実行できなかった部分です。) <arg value="--enable-java"/> <arg value="--enable-dynamic"/> <arg value="--with-arith=${arith}"/> </exec> </target>

  • ant debugの実行

    ブラウザでAndroidアプリケーション開発が行えるようなシステムをCent OSで開発しています。 PHPを使っています。 ■問題 ・サーバー上のコマンドライン端末でのant debugコマンドは実行可能(Build Successfull) ・ターミナル(Tera Term)上でのant debugコマンドは実行可能(こちらもBuild Successfull) ・ブラウザからのant debugコマンド(PHPのsystem関数使用)が実行不可。  以下ターミナルでみたerror_logです。↓ BUILD FAILED /home/nameko/android-sdk-linux/tools/ant/build.xml:705: The following error occurred while executing this line: /home/nameko/android-sdk-linux/tools/ant/build.xml:718: Unable to find a javac compiler; com.sun.tools.javac.Main is not on the classpath. Perhaps JAVA_HOME does not point to the JDK. It is currently set to "/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre" ------------------------------------ 環境パスの設定ミスでしょうか。 調査しつつ調整しているのですが、いまいち環境パスの設定の仕方(どこのどのファイルをviコマンドを用いるか)、反映の仕方(sourceコマンドであっているのか)を詳しく知りたいです。 また、1つ気になる所がありまして、 printenvコマンドでパスの一覧を見ると、 ・PATH=~~~~ ・ANDROID_SDK=~~~~~ ・ANDROID_SDK2=~~~~~~ ↑の「~~~」の一部分に、”ダウンロード” という日本語が設定されています。OS間の互換性でのerrorである可能性もありうるので、こちらのパスも直したいのですが、変え方がわかりません。 どなたか教えていただけると幸いです、よろしくお願いします。

    • 締切済み
    • PHP
  • Eclipse3.4で1つの構成ファイルを使ってAntでビルドしたい

    こんにちは。 Eclipse3.4 で Webアプリケーションを開発しています。 ビルドには、build.xml に定義してAntで行っています。 しかし、[build.xml]で右クリックして、[実行]→[Ant ビルド]を 実行するごとに、構成ファイルが増えている事が分かりました。 [build.xml]で右クリックして、[実行]→[外部ツール構成]を実行 して、ウィンドウ左側のフォルダ表示に、 □┬Ant ビルド  ├プロジェクト名 build.xml  ├プロジェクト名 build.xml (1)  ├プロジェクト名 build.xml (2)  ├プロジェクト名 build.xml (3)  └プロジェクト名 build.xml (4) 表示されていたためです。 構成の内容を設定しても、新たに構成ファイルが作成されてしまい、 「[build.xml]を右クリックして実行…」をすると、また構成ファイ ルが作られる…の繰り返しです。 ここで「構成ファイル」と言っているのは、 「プロジェクト名 build.xml」 「プロジェクト名 build.xml (1)」 のことです。 解決方法をご存知でしたら、よろしくお願いします。

  • antについて

    antを実行すると次のようなエラーが出ます。なぜでしょう? C:\Documents and Settings\Tnigawa\sen-1.2.2.1\dic>ant Buildfile: build.xml init: compile: BUILD FAILED C:\Documents and Settings\Tnigawa\sen-1.2.2.1\dic\build.xml:47: Execute failed: java.io.IOException: CreateProcess: cpp -P C:\Documents and Settings\Tnigawa\sen -1.2.2.1\dic\src\java/net/java/sen/util/DoubleArrayTrie.cpp error=2

    • ベストアンサー
    • Java
  • antが上手く出来ない

    卒論作成中の学生です。 buildするのにantを使おうとしているのですが >ant run Buildfile: build.xml init: compile: run: [exec] java.lang.NoClassDefFoundError: Files\Java\jre6\lib\ext\QTJava/zip [exec] Exception in thread "main" [exec] Result: 1 BUILD SUCCESSFUL Total time: 1 second という結果で一応ビルドできてる?みたいなのですがバッチファイルを起動しようとすると 同じエラーが出てしまいます。 関係ありそうな以下のパスを調べたりいじったりしてもダメでした。 ANT_HOME=C:\apache-ant-1.7.1 CLASSPATH=.;\C:\Program Files\Java\jre6\lib\ext\QTJava.zip JAVA_HOME=c:\program files\java\jdk1.5.0_08 Path=c:\program files\java\jdk1.5.0_08;C:\Program Files\QuickTime\QTSystem\;C:\apache-ant-1.7.1\bin(一部抜粋) 割と頻出の問題のようなのですがはっきりとした解決方法が見つけられずにいます。 この問題に行き詰って作業が完全に止まってしまっているのでよろしくお願いします。

  • javaのコンパイルについて

    java初心者なのですがコンパイルができません! コマンドプロンプトでjavac Hello.javaと入力すると、内部コマンドまたは外部コマンド、操作可能なプログラムまたはパッチファイルとして認識させていません、とでてきて実行できません。 環境変数でパスの設定をしてたのですが何回も見直しても間違ってないのに、コマンドプロンプトで  [Path]\javac.exe-help  と入力すると指定されたパスは見つかりませんと出てきます。 ちなみに環境変数のところには行末に、 ;C:\Program Files\Java\jdk1.6.0_07\bin と入力しました。 何が問題なのでしょうか??ちなみに,version 6 update 7 です。 わかる方是非返答お願いします!!

  • Java -- Ant replaceタスク 予約記号の置換 エスケープ方法

    Java -- Ant replaceタスク 予約記号の置換 エスケープ方法 Ant1.7を利用しているのですが、つまずいてます。ご存知の方教えて下さい。 replaceタスクを使って、”<include path="test.xml" /> ”の文字列を空白に置換(削除)したいのですが "<" , """ の記号が予約文字でantのエラーになってしまいます。 どの様にエスケープして実現可能でしょうか? ヨロシクお願いします。 <replace file="${base.dir}/conf/appl.xml" token="<include path="test.xml" />" value=""/>

  • AntでのJunitの試験

    Antのbuild.xmlを下記のように記述して、Ant unit-testを実行させると、下記の[junit]の試験がFAILEDになってしまいます。これと同じJunitの試験はEclipse上のJunitの試験ではパスしていますので、Javaのテストプログラムそのものには間違いはありません。(同じファイルを使っています。) レポートファイルのエラーを見てみると、initializationErrorで、 org/hamcrest/SelfDescribing java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) Caused by: java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing at java.lang.ClassLoader.loadClass(ClassLoader.java:358) のようなエラーをはいていますが、理由が分かりかねています。 Antは、apache-ant-1.9.2、Junitは、juint-4.11.jarを使っています。 多分、下記xmlファイルの<junit>の書き方の問題ではないかと思うのですが、 AntのJunitの試験に詳しい方でお分かりになる方ございましたらアドバイスをお願いします。 <?xml version="1.0" encoding="UTF-8"?> <project> <property name="output" value="build/output"/> <target name="compile"> <mkdir dir="${output}/classes"/> <javac srcdir="src" destdir="${output}/classes"/> </target> <target name="unit-test" depends="compile"> <path id="for-unit-test"> <pathelement location="${output}/classes"/> <pathelement location="${output}/test-classes"/> <pathelement location="build/lib/junit-4.11.jar"/> </path> <mkdir dir="${output}/test-result"/> <mkdir dir="${output}/test-classes"/> <javac srcdir="test/src" destdir="${output}/test-classes"> <classpath refid="for-unit-test"/> </javac> <junit> <classpath refid="for-unit-test"/> <batchtest todir="${output}/test-result"> <fileset dir="test/src"> <include name="**/*Test.java"/> </fileset> <formatter type="xml"/> </batchtest> </junit> <junitreport todir="${output}/test-result"> <fileset dir="${output}/test-result"> <include name="TEST-*.xml"/> </fileset> <report format="frames" todir="${output}/test-result/report"/> </junitreport> </target> </project>

    • ベストアンサー
    • Java
  • antでパラメータ付きsqlファイルを実行する方法。

    antでパラメータ付きsqlファイルを実行する方法。 antでsqlタスクを利用する際、一部をパラメータにしたいのですが、sqlファイルにした場合に どうすれば良いでしょうか? SQL/PLUSの場合でいうと、sqlファイルに「&1」で記述するイメージです。 下記のbuild.xmlの transaction にある src に指定しているsqlファイルに引数を渡したい。 ■bulid.xml(sqlタスクの部分) <target name="test">  <sql driver="${jdbc.driver}" url="${db.url}"     userid="${db.username}" password="${db.password}"     print="false" encoding="UTF-8" delimiter="/"     delimitertype="row" keepformat="yes">   <transaction src="./test.sql"/>   <classpath refid="compile.classpath"/>  </sql> </target> ■test.sql select '&1' as 引数の内容 from dual; ■期待する結果 渡す引数の内容が「TEST」だとした場合 引数の内容 --------- TEST sqlファイルの書き方(パラメータ部分)、build.xmlの書き方、 その他の方法等ありましたら、ご教授下さい。 宜しくお願いします。