webForumDet fria alternativet

Exekvera C-funktioner/program från Java.

Java

5 svar · 473 visningar · startad av Fredde Mannen

Medlem sedan nov. 20014 054 inlägg
Frågan#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?

Medlem 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

Medlem 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..

Medlem 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.

Medlem 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.. :)

Medlem 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"})

259 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)