2012-04-05 9 views
0

いくつかの.exeファイルを実行するJavaで書かれたコードがいくつかあります。最初に一時ファイルを作成し、実行後にそのファイルを破棄します。JARの.exeを作成して使用する

唯一の問題は、実行可能ファイルが主な機能を持つクラスと同じパッケージにあることです。プロジェクトのJARファイルを作成している最中にそのexeファイルを実行することはないため、私は配置して他の場所からも.exeファイルにアクセスしたいのです。

私の.exeファイルは、自分のプロジェクト内の場所に関係なく、私のJARファイルの一部になる可能性がありますか?あなたが行うことができます

package com.web.frame; 
import java.io.File; 
import java.io.FileOutputStream; 
import java.io.InputStream; 
//import java.net.URL; 

public class Test{ 
    public void Test1(String fileAddr,String filename, String destFilenam) throws  Exception { 
    // Place .exe into the package folder. 
    InputStream src =this.getClass().getResourceAsStream("DECRYPT.exe"); 
if(src!=null) { 
    File exeTempFile = File.createTempFile("dspdf", ".exe"); 
    byte []ba=new byte[src.available()]; 
    src.read(ba,0,ba.length); 
exeTempFile.deleteOnExit(); 
    FileOutputStream os=new FileOutputStream(exeTempFile); 
    os.write(ba,0,ba.length); 
    os.close(); 
    String hello=exeTempFile.getParent(); 
    System.out.println("Current Directory Of file : "+hello); 
    String hello1=exeTempFile.getName(); 
    System.out.println("Full Name Of File : "+hello1); 
    int l=hello1.length(); 
    l=l-4; 
    char[] carray=hello1.toCharArray(); 
    String s = new String(carray,0,l); 
    System.out.println(s); 
    String param="cmd /c cd "+hello+" && "+s+" d 23 11 23 "+fileAddr+"\\"+filename+" "+destFilenam; 
    Runtime.getRuntime().exec(param); 
    Runtime.getRuntime().exec("c:\\Program Files\\VideoLAN\\VLC\\vlc.exe "+hello+"\\"+destFilenam); 
    Runtime.getRuntime().exec("cmd /c del"+hello+"\\"+destFilenam); 
    } 
else 
    System.out.println("Executable not found"); 
    } 

} 
+2

1)ProcessBuilderを使用する2)[Runtime.exec()が実行されない場合]の推奨事項をすべて読み、実装する(http://www.javaworld.com/javaworld/jw-12-2000/jw -1229-traps.html)3) 'Process'のディレクトリを設定できることに注意してください。 4)シフトキーを見つけて、それぞれの文章の最初の文字と「私」という言葉に適用してください。 5)「あなた」のために「あなた」のような綴りを作り上げないでください。 6)* "助けてください" *質問をしてください。 –

答えて

0

最大は、あなたのクラスパスにどこでもあなたのexeファイルを置くです:

は、ここでは、コードです。 jarのマニフェストにclasspath要素があることを確認します。次に、Test.class.getResourceAsStream( "")と言ってexeにアクセスできるはずです。

したがって、フォルダを作成し、exeをそのフォルダに入れてクラスパスに追加します。

関連する問題