• ベストアンサー

Javaからのバッチ起動に関して

_ranco_の回答

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.2

> マッチする条件のファイル量が多いときに テキストフィールドでワイルドカードを指定しているということですか? > 途中で何故か止まります。 ファイル移動の操作が止まるんですか? (で、そのあとどうなるの?) なにかほかのことが止まるの? FileActionって何をやっているんですか? isokとpathの値を決めてるだけ? (それならこの同じコード中でshowOpenDialog()でAPROVEを取って、getSelectedFile()したほうが確実堅牢ですね。別のアクションリスナを使うのは無駄。)

関連するQ&A

  • javaプログラミングにおけるバッチファイル起動

    JavaのプログラムからNetbeansを用いてバッチファイルを起動させることを考えています。 以下のようにプログラムを作成したところ、コマンドプロンプトの画面は表示されるのですが、バッチファイルの中身が起動されません。 どのようにしたらよろしいかお知恵を拝借願います。 public class Open_JTalk { private Process p; private void start() { try { //String command = "cmd.exe /c start"; String command = "cmd.exe /c start lib/open_jtalk/m001_106.bat"; p = Runtime.getRuntime().exec(command); } catch (Exception e) { } } public static void main(String args[]) { Open_JTalk jtalk = new Open_JTalk(); jtalk.start(); } } バッチファイルを動かすのみの処理で、 String command = "lib/open_jtalk/m001_106.bat"; とした場合は何も処理されずにプログラムが終了してしまいます。 また、バッチファイルはlib/open_jtalk/に配置済みです。 ディレクトリのbatファイルをクリックで動かした場合には正常に起動しています。 どうかよろしくお願いします。

    • ベストアンサー
    • Java
  • 開いたファイルをJListに追加したい

    最近、Swingを勉強し始めたばかりです。 開くボタンを作りファイルチューザでcsvファイルを開き、1行ずつ引っ張り出してきて全データをJListに表示したいのですがうんともすんともいいません。 知恵をお貸しくださいお願いします(T_T) 鈴木一郎,東京都,渋谷110,1960 松井一郎,大阪府,大阪市119,1928 class SwingTest extends JFrame implements ActionListener{ private static JFrame frame; private JFileChooser chooser = new JFileChooser(); private Container pane = getContentPane(); private DefaultListModel myList = new DefaultListModel(); 略 public void actionPerformed(ActionEvent e){ String s = e.getActionCommand(); if(s.equals("Open")==true){ JFileChooser chooser = new JFileChooser(); int returnval = chooser.showOpenDialog(this); li.setPreferredSize(new Dimension(500,300)); if(returnval == JFileChooser.APPROVE_OPTION){ File file = chooser.getSelectedFile(); FileInputStream fis = new FileInputStream( file ); InputStreamReader isr = new InputStreamReader( fis ); BufferedReader br = new BufferedReader( isr ); String line = br.readLine(); String[] token = line.split(","); String str = token[0] + "\t" + token[3]; myList.addElement(str); li.setModel(myList); }

    • ベストアンサー
    • Java
  • バッチ起動したいのですが…

    javaからバッチを起動したいのですが、以下の記述ではうまくいきません。動作として、具体的には、バッチからあるプログラムを起動し、for文によって、プロンプトがエンドレスに表示され続けるという動作をするはずなのですが、エラーは出ないのにうまくできません。ただし、バッチから起動するプログラムのファイルを、同じjavaのワーキングディレクトリに入れるとうまく動作します。ただ、この方法だと、融通が利かないし、ディレクトリがごちゃごちゃしてしまうので、使えません。 自分の中では、パスの問題なのだろうかと思うのですが、どうすればうまくいくのでしょうか? try { Process p = Runtime.getRuntime().exec("C:\\10\\UI.bat"); } catch (IOException ex) { System.out.println("erorr"); ex.printStackTrace(); }

  • javaでhtmlファイルを開く方法

    通常は、下記のような記述をすれば、html.htmlファイルを開けると思うのですが開けせん。どうすれば、開くことができますか? また、ディスクトップで実行しているのですが、Javaファイルと同じディレクトリ(デスクトップ)にあるhtml.htmlファイルを開くことはできないのしょうか? 相対パスで記述するとエラーになります。 初歩的な質問かもしれませんが、ご教示、宜しくお願い致します。 String[] cmd = {"C:\\html.html"}; Runtime rt = Runtime.getRuntime(); Process pr = rt.exec(cmd);

    • ベストアンサー
    • Java
  • JAVAと構文解析器(cabocha)の連結について

    現在、eclipseでJAVAをやっています。(環境はwindows XPです。) JAVAから構文解析器(cabocha)を用いて、文章を解析させたいと考えています。 [やりたいこと] 1.INPUTファイルを自動生成(ファイルA.txt)をする。 2.ファイルAの内容をコマンドプロンプトからCabochaを実行し、   解析を行う。 3.その結果をOUTPUTファイル(ファイルB.txt)に保存し、出力させる。 そこで、2番について教えていただきたいのですが、JAVAからコマンドプロンプロトを実行し、 cd c:\program files\cabocha\bin cabocha.exe -f1 input.txt --output=output.txt の2行をペーストし、cabochaを実行させたいのですが、どのようにすればよいのでしょうか。 自分がわかっているプログラム以下のところまでです。 [プログラム] public static void main(String[] args) throws IOException{ File file1 = new File("C:\\Program Files\\CaboCha\\bin\\input.txt"); try{ String str=null; InputStreamReader reader=new InputStreamReader(System.in); BufferedReader buffreader =new BufferedReader(reader); System.out.println("文字を入力してください。"); str = buffreader.readLine(); PrintWriter pr =new PrintWriter(new BufferedWriter(new FileWriter("C:\\Program Files\\CaboCha\\bin\\input.txt"))); pr.write(str); System.out.println(str+"が書き込まれました。"); pr.close(); Runtime rt = Runtime.getRuntime(); Process pro = rt.exec("C:\\WINDOWS\\system32\\cmd.exe"); } 誰かわかる方、ご教授お願いいたします。

  • javaからバッチファイル実行

    お世話になります。 javaプログラムからバッチファイルを呼び出して実行するようにしたいのですが、上手くいきません。 サイトを参考に以下のように書いてみましたが、 バッチファイルの一行目のみ実行している?ようで、二行目以降の処理をしていないようです。 バッチファイル単体での実行は正常に動作しています。 お気づきの点がありましたら教えて頂けないでしょうか。 try { String[] cmd = {"バッチファイルのパス"}; Process p = Runtime.getRuntime().exec(cmd); while(true){ try{ p.exitValue(); }catch(IllegalThreadStateException e){ continue; } break; } } catch (IOException e) { e.printStackTrace(); }

    • ベストアンサー
    • Java
  • javaについて

    キーボードから入力をして、その後str[0][0]とstr[1][0]の文字を繋げたいのですがエラーとなってしまいます。どう変えたらよいでしょうか。 以下がプログラムです。 import java.io.*; import java.lang.*; import java.net.*; import java.awt.*; class gugu3 { public static void main(String[] args) throws IOException { int KEYWORDMAX=10; int CNTMAX=100; String [][]str = new String[KEYWORDMAX][CNTMAX]; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String line=null; for (int i=0;i<KEYWORDMAX;i++){ System.out.println("第"+(i+1)+"番目のキーワードを設定しますか?(y/n)"); line=br.readLine(); if(line.equals("n")) break; for (int s=0;s<CNTMAX;s++){ System.out.println("キーワードを入力してください(終了=0)"); line=br.readLine(); if(line.equals("0"))break; str[s][i]=line; } } String keyword = new String(str[0][0]" "str[1][0]); System.out.println("キーワードは "+keyword); } } 以下はエラー表示です。 gugu3.java:24: ')' がありません。 String keyword = new String(str[0][0]" "str[1][0]); ^ gugu3.java:24: 文ではありません。 String keyword = new String(str[0][0]" "str[1][0]); ^ gugu3.java:24: ';' がありません。 String keyword = new String(str[0][0]" "str[1][0]); ^ エラー 3 個

    • ベストアンサー
    • Java
  • バッチのcallの使い方で、これって合ってるか教えてください。

    下記のようなバッチスクリプトを作りました。 ************************************** FC AAA.txt BBB.txt if not %errorlevel% EQU 0 call :ERR-SEC 10 FC CCC.txt DDD.txt if not %errorlevel% EQU 0 call :ERR-SEC 11 exit 0 :ERR-SEC echo 終了コード:[%1] > EEE.log exit %1 ************************************** 気にしているのはcallの使い方です。 どこの処理でエラーが起きたかあとでわかるように、 callでエラーセクションをパラメータを渡して呼び出し、 引数をログ出力と終了値に使用しています。 callは本来、2回終わらせる必要があると参考書に記載されていたのですが、 このバッチではexitで無理やり終わらせています。 このような使い方は問題ないでしょうか? なにか気になる点があればぜひ教えてください。 よろしくお願いします。 ちなみにOSはWindows2003Serverです。

  • Java JFileChooser

    こんにちは。趣味でプログラミングをしているものです。 さっそくですが、質問させていただきます。 まず、以下のコードをみていただきたいのですが・・・ public class test03 extends JFrame { DrawPanel dp01; test03() { super("filedialog test"); setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); dp01 = new DrawPanel(); add( dp01 ); setResizable( false ); setLocation( 170,300 ); pack(); setVisible( true ); } /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ new test03(); } } -------------------------------------------------------- class DrawPanel extends JPanel implements ActionListener { JButton btOpen; JButton btSave; DrawPanel() { super(); setLayout( null ); setPreferredSize( new Dimension( 200, 240 )); setBackground( new Color( 220,240, 230 )); btOpen = new JButton( "open"); btSave = new JButton( "save"); btOpen.addActionListener( this ); btSave.addActionListener( this ); add( btOpen ); add( btSave ); btOpen.setBounds( 0,0, 100,40 ); btSave.setBounds( 100,0, 100, 40 ); } public void actionPerformed( ActionEvent ae01 ) { if( ae01.getSource() == btOpen ) { JFileChooser jfc = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter( "jpg and gif files","jpg","gif"); jfc.setFileFilter( filter ); int retvalue = jfc.showOpenDialog( null ); if( retvalue == JFileChooser.APPROVE_OPTION ) { //System.out.println( "you choosed a file : "); System.out.println( jfc.getCurrentDirectory().getName() ); System.out.println( jfc.getSelectedFile().getName() ); System.out.println( jfc.getSelectedFile().getAbsolutePath()); } } } } DrawPanel クラスの中の FileNameExtensionFilter についてなのですが、 コンストラクタの引数をこのように指定すると、 jpg と gif のファイルが同時にフィルターされ抽出されるのですが、 Windows7 に標準で付属しているペイントだと、 拡張子一種類ずつのファイルがフィルターにより抽出されます。 JFileChooser を用いても、ペイントのようなファイルの フィルタリングはできるものでしょうか? ご存知のかた、教えていただけないでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • Runtime.execについての質問

    こんにちは、Makotoと申します。 Runtime.execを使って、ディレクトリを作成する プログラムを作っているのですが、下記のプログラムで ディレクトリは作成されるのですが、コマンドプロンプト画面が 立ち上がったままになってしまいます。閉じようと思い、8行目でexitコマンド を発行してみたのですが、うまくいきませんでした。このウィンドウを閉じる 方法はあるのでしょうか? 1:public class test{ 2:  public static void main(String[] args) throws Exception { 3:    Runtime rt = Runtime.getRuntime(); 4:    Process pr; 5:    try { 6:      Process proc1 = rt.exec("cmd /C start /MIN 7:               mkdir c:\\\poi\\test"); 8:      proc1 = rt.exec("command.com, /, exit"); 9:    } catch (java.io.IOException e) { 10:     System.err.println(e); 11:     System.exit(1); 12:    } 13: 14: } 15:}

    • ベストアンサー
    • Java