0

Rスクリプトを呼び出すJavaプログラムがあります。コマンドは次のとおりです。

String filename = "hierarchicalClusteringScript.R";
String[] cmd=new String[]{this.conn.getRPath(),"CMD","BATCH",
            "--args LD_matrix='"+LD_matrix+"' " +
            "image_filename='"+image_filename+"' " +
            "width="+300+" "+
            "height="+height+" "+
            "ordered_snps_filename='"+ordered_snps_filename+"'",
            filename,
               this.conn.getWorkingDir()+this.conn.getProjectName()+"Routput.txt"};
    Runtime runtime = Runtime.getRuntime();
    try {
        Process process = runtime.exec(cmd);
        process.waitFor();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

Rスクリプト「hierarchicalClusteringScript.R」をjarファイルに含めたいと思います。私がそうする場合、コードからスクリプトを呼び出す方法はありますか?どのパスを使用する必要がありますか?

よろしくお願いします

4

3 に答える 3

1

JARからスクリプトを抽出するために、通常、JAR/ZIP抽出を実行することはめったにありません。スクリプトをJARに入れると、通常はクラスパスにあることを意味します。したがって、それをリソースとして見つけ、inputStreamを取得し、リソースを読み取って一時ディレクトリに書き込みます。これらのいくつかの手順は、ネットからコードサンプルを簡単に見つけることができるほど簡単なはずです。

あなたのためのいくつかのヒント:

Class#getResourceAsStream()
FileOutputStream
File#createTempFile()
于 2012-08-08T02:04:03.050 に答える
0

Jarファイルは基本的にZipファイルです(マニフェスト付き)。

Jar APIを使用して、これらからファイルを抽出できます

基本的に、を開きJarFile、検索し、コンテンツを抽出してJarEntry使用する必要がありますJarOutputStream

JARファイルを抽出してそのデータを指定されたディレクトリ(場所)に格納できるJavaプログラムを作成する方法をご覧ください。例として

于 2012-08-08T01:40:13.233 に答える
0

Rスクリプトをjarに追加し、Rをjarクラスパスからリソースとしてロードしようとしていることを理解している場合。(jarには任意のタイプのファイルを含めることができますが、JVMはバイトコード互換のもののみを実行できます)

--既存のjarにスクリプトを追加するには、次のようにします:
http ://docs.oracle.com/javase/tutorial/deployment/jar/update.html

--スクリプトを使用して新しいjarを作成するには、次のようにします:
http ://docs.oracle.com/javase/tutorial/deployment/jar/build.html

--jarからスクリプトをロードするには、スクリプトがクラスパスにあることを確認し、コードにResourceLoaderを使用してロードします:http:
//docs.oracle.com/javase/1.5.0/docs/guide/lang/resources.html

于 2012-08-08T01:48:54.260 に答える