2011-07-02 88 views
0

我使用下面的代码来运行我通过我的代码加载的exe文件。需要帮助来找到文件名

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

你也可以打印'file.getAbsoluteName()' –

+0

对不起,但我很困惑 - 什么是阻止你存储在一个字符串? –

回答

0

如果你想记住使用过的文件只是初始化filelocation与null并测试它。 BTW:把它作为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(); 
      } 
     } 
    }; 
}