Нужна помощь, чтобы найти имя файла - PullRequest
0 голосов
/ 02 июля 2011

Я использовал следующий код для запуска исполняемого файла, загружаемого через мой код.

private static String filelocation = "";

.

  load_exe.addActionListener(new ActionListener() {

     @Override
     public void actionPerformed(ActionEvent e) {
        try {
           JFileChooser file_Choose = new JFileChooser();

           file_Choose.showOpenDialog(frame);
           JavaSamp.filelocation = file_Choose.getCurrentDirectory()
                    .toString()
                    + "\\" + file_Choose.getSelectedFile().getName();
           System.out.println("FileLocation" + JavaSamp.filelocation);
        } catch (Exception expobj) {
           // TODO Auto-generated catch block
        }
        Runtime rt = Runtime.getRuntime();

        try {
           System.out.println("File Run Location" + JavaSamp.filelocation);
           proc = rt.exec(JavaSamp.filelocation);

        } catch (IOException e4) {
           e4.printStackTrace();
        } catch (Exception e2) {

        }
     }
  });

Моя проблема в том, что приведенное выше выполнение JavaSamp.filelocation должно выполняться много раз. Первый раз только загружаю exe. В следующий раз я не буду. Мне нужно хранить exe-файл в строке для запуска в течение нескольких раз подряд. Любое предложение, пожалуйста,

1 Ответ

0 голосов
/ 02 июля 2011

Если вы хотите запомнить использованный файл, просто инициализируйте filelocation с нулевым значением и проверьте его. Кстати: хранить его как File имеет больше смысла, и ваш способ построения абсолютного пути немного сложен - по сравнению с простым вызовом getAbsolutePath()

private static File filelocation = null;

private static void test() {
    load_exe.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            // Check if file-name to execute has already been set
            if (filelocation != null) {
                try {
                    JFileChooser file_Choose = new JFileChooser();

                    file_Choose.showOpenDialog(frame);
                    JavaSamp.filelocation = file_Choose.getSelectedFile();
                    System.out.println("FileLocation"
                            + JavaSamp.filelocation.getAbsolutePath());
                } catch (Exception expobj) {
                }
            }
            Runtime rt = Runtime.getRuntime();

            try {
                System.out.println("File Run Location"
                        + JavaSamp.filelocation.getAbsolutePath());
                Process proc = rt.exec(JavaSamp.filelocation
                        .getAbsolutePath());

            } catch (IOException e4) {
                e4.printStackTrace();
            }
        }
    };
}
...