私は以下のコードからそれらの長さを読み、それが4Java文字列(ファイルのパス)からCへの送信方法は?
私を返すJavaから...私は4 subfoldesを持っているフォルダを持っ例えばC.にJavaからいくつかのパスを送りたいです私は良いこれまでのところ、すべてのC
public Start(){ Thread listeningThread = new Thread(new Runnable(){
public void run(){
new Match(GetDBNumber()); } });
listeningThread.start();}
との接続機能を呼び出すために開始したスレッドと今
public static int GetLength(){File file = new File("C:\\Registrations");
File[] files = file.listFiles(new FileFilter(){
public boolean accept(File f) {
return f.isDirectory(); }});
return files.length;} }
。今MATCH(int型x)はクラスから、私はパスがそのようになります受け取れますCコードのメインフォルダのパスを毎回与える
*PSEUDOCODE* public class Match {
public Match(int len){
System.out.println("subfolders : "+len);
for (i=0; i<len; i++)
{ //Some way call C programm (like an exe)
//with the first,second,third,fourth path
}
.... }
Cコードと毎回呼びたいです。 ..
int main() {
FILE *fp = fopen(FilePATH, "r");
......
......
return 0; }
私はProcessBuilderをしてみてくださいしかし、私はこの方法でパスを毎回送るカント...
ProcessBuilder p = new ProcessBuilder();
//receive.exe is the exe that Codeblocks create after built the C code
p.command("C:\\Users\\PC\\Documents\\NetBeansProjects\\TEST\\C\\recieve.exe");
try {
p.start();
} catch (Exception e) {System.out.println("Error");
}
これを実行すると正確に何が起こりますか?両方のプログラムからどのようなエラーメッセージが表示されますか?また、Cプログラムにパラメータを渡しているようではありません。 – dbush
これは私がattempこれはexeを呼び出す。もし私が前にCコードでデフォルトパスを設定していれば、それは実行されます。しかし、私はCがJavaから与えられたパスを読みたいと思っています。だから、私がデフォルトパスを設定せずにこれを試してみると、その作業はまったくできません。 –
"default path"と言うと、現在のディレクトリですか? CプログラムはJVMから継承する必要があります。あなたが本当に望むのは、Javaプログラムがファイル名をパラメータとして渡すことです。 – dbush