1

最近、Linux Ubuntu 10.04 でシェル スクリプトを実行するアプリケーション用の GUI を開発しました。今日まで問題なく動作していました。ボタンをクリックすると、ファイルを選択するためのプロンプトが表示されるようにボタンを設計しました。JFileChooser はアクションで使用されます。しかし、今日の朝から、エラーもなく、ボタンをクリックしても何も起こりません。いきなり効くわけではありません。このエラーは何ですか? 誰か助けてくれませんか?これは、インストールされている OS/Java に関連するエラーですか?

前もって感謝します。

int yorn = JOptionPane.YES_OPTION;
String user = System.getProperty("user.home");
File file = new File(user+"/.afile");
if (file.exists()){
    yorn = JOptionPane.showConfirmDialog(this,"There seem to have a Previous project , Do you want to back up??");

    if (yorn == JOptionPane.YES_OPTION){ // yesoption clicked!

        //choose folder to open!
        JFileChooser jf = new JFileChooser();
        jf.setDialogTitle("Back up location?");
        String pathname = null;
        jf.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        jf.showOpenDialog(null);
        File f = jf.getSelectedFile();
        pathname = f.getAbsolutePath();
        // JOptionPane.showMessageDialog(this,pathname);
        try{
            Process copy = Runtime.getRuntime().exec("sh "+user+"/myprojects/.backup.sh "+pathname);
        }
        catch(Exception e){
            JOptionPane.showMessageDialog(this, e);
        }

        //open file for analysing..
        JOptionPane.showMessageDialog(this,"Backing up complete.. ");

        JFileChooser jf2 = new JFileChooser();
        jf2.setDialogTitle("Open the Codebase");
        String pathname2 = null;
        jf2.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        jf2.showOpenDialog(null);
        File f2 = jf2.getSelectedFile();
        pathname2 = f2.getAbsolutePath();
        String username = System.getProperty("user.home");
        File writefile = new File(username+"/.afile");              

        Writer output = null;
        try {
            output = new BufferedWriter(new FileWriter(writefile));
            output.write(pathname2);
            output.close();

            //    JOptionPane.showMessageDialog(this,username);
        } catch (IOException ex) {
            Logger.getLogger(MainWindow.class.getName()).log(Level.SEVERE, null, ex);
        }

    } else if (yorn == JOptionPane.NO_OPTION){       

        JFileChooser jf = new JFileChooser();
        jf.setDialogTitle("Open the Codebase");
        String pathname = null;
        jf.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        jf.showOpenDialog(null);
        File f = jf.getSelectedFile();          
        pathname = f.getAbsolutePath();
        String username = System.getProperty("user.home");
        File writefile = new File(username+"/.afile");              
        Writer output = null;
        try {
            output = new BufferedWriter(new FileWriter(writefile));
            output.write(pathname);
            output.close();

            //    JOptionPane.showMessageDialog(this,username);
        } catch (IOException ex) {
            Logger.getLogger(MainWindow.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
} 

これがコードです。ファイルが存在するかどうかを確認し、存在する場合はバックアップを要求します。バックアップが「はい」の場合は、バックアップを実行し、別の選択のために新しいウィンドウを開きます。バックアップが「いいえ」の場合は、ファイルの選択が開かれます。前述したように、これは私が質問するまで機能していました。突然動作しなくなりました。すべての返信に感謝します。

4

1 に答える 1

2

前に質問されたように例を提供する必要がありますが、これは私にとって機能するコードであり、linux/MAC OS/Windows でテストされています。

/* chooser is of type JFileChooser of course */
chooser.setDialogTitle("title of your dialog");
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY /* change it to fit your needs */);
chooser.setAcceptAllFileFilterUsed(false);
chooser.showOpenDialog(null);
于 2012-08-06T07:21:29.930 に答える