webForumDet fria alternativet

Exekvera C-funktioner/program från Java.

5 svar · 472 visningar · startad av Fredde Mannen

Fredde MannenMedlem sedan nov. 20014 054 inlägg
#1

Finns det något sätt man kan exekvera C-progam från ett Java-program? Så att javaprogrammet kan komma åt resultatet som c-programmet returnerar?

erkaMedlem sedan dec. 19996 522 inlägg
#2

Lite uppslag att googla vidare på, om det bara gällde kommunikation iform av ett resultat

http://www.velocityreviews.com/forums/t279534-communication-between-a-c-and-java-program.html

Fredde MannenMedlem sedan nov. 20014 054 inlägg
#3

erka skrev:

Lite uppslag att googla vidare på, om det bara gällde kommunikation iform av ett resultat

http://www.velocityreviews.com/forums/t279534-communication-between-a-c-and-java-program.html

Jo det gällde att få resultatet som c-programmet returnerar..

spangoMedlem sedan juni 20008 205 inlägg
#4

Vad är det du vill göra? Är det att anrop av ett kommandoradsprogram som är skrivet i C (eller vilket språk som helst), och kommunikaitonen inte behöver vara mer komplicerad än vad kommandoradsargument och stdin/out tillåter, är det bara att använda ProcessBuilder. Vill du däremot anropa en funktion i en DLL (el. kompatibelt) måste du skriva en JNI-wrapper som gör anropet och översätter resultatet till Java.

Fredde MannenMedlem sedan nov. 20014 054 inlägg
#5

spango skrev:

Vad är det du vill göra? Är det att anrop av ett kommandoradsprogram som är skrivet i C (eller vilket språk som helst), och kommunikaitonen inte behöver vara mer komplicerad än vad kommandoradsargument och stdin/out tillåter, är det bara att använda ProcessBuilder. Vill du däremot anropa en funktion i en DLL (el. kompatibelt) måste du skriva en JNI-wrapper som gör anropet och översätter resultatet till Java.

Nackdelen med ProcessBuilder är att vi kan intre använda den.. vi har begränsningen till v1.4.2 .. får väl googla lite på detta med JNIWrapper.. :)

spangoMedlem sedan juni 20008 205 inlägg
#6

Du behöver inte ProcessBuilder, även om den är smidigare.
Process p = Runtime.getRuntime().exec(new String[]{"ditthack.exe", "argument 1", "argument 2"})

137 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)