2011-07-02 125 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(); 
      } 
     } 
    }; 
}