» »

C -> Java

C -> Java

ozbolt ::

Imam C projekt, kateri zeli komunicirati z Javo. Ampak, ko pozenem java program z popen() imam probleme, saj je Java program narejen z Intellij, kjer mam lepo vkljucene kot module vse potrebne jar-e in podobno. Poskusil sem program zagnati tako, da sem prekopiral kar direktno komando, ki jo pozene IntelliJ

usr/lib/jvm/java-7-openjdk/bin/java -Djava.library.path=lib/ -Didea.launcher.port=7532 -Didea.launcher.bin.path=/usr/share/intellijidea-ce/bin -Dfile.encoding=UTF-8 -classpath /usr/lib/jvm/java-7-openjdk/jre/lib/resources.jar:/usr/lib/jvm/java-7-openjdk/jre/lib/jce.jar:/usr/lib/jvm/java-7-openjdk/jre/lib/management-agent.jar:/usr/lib/jvm/java-7-openjdk/jre/lib/charsets.jar:/usr/lib/jvm/java-7-openjdk/jre/lib/rhino.jar:/usr/lib/jvm/java-7-openjdk/jre/lib/jsse.jar:/usr/lib/jvm/java-7-openjdk/jre/lib/rt.jar:/usr/lib/jvm/java-7-openjdk/jre/lib/ext/sunpkcs11.jar:/usr/lib/jvm/java-7-openjdk/jre/lib/ext/dnsns.jar:/usr/lib/jvm/java-7-openjdk/jre/lib/ext/sunjce_provider.jar:/usr/lib/jvm/java-7-openjdk/jre/lib/ext/localedata.jar:/usr/lib/jvm/java-7-openjdk/jre/lib/ext/j3dcore.jar:/usr/lib/jvm/java-7-openjdk/jre/lib/ext/pulse-java.jar:/usr/lib/jvm/java-7-openjdk/jre/lib/ext/zipfs.jar:/usr/lib/jvm/java-7-openjdk/jre/lib/ext/vecmath.jar:/usr/lib/jvm/java-7-openjdk/jre/lib/ext/j3dutils.jar:/home/ozbolt/BitBucket/PS/nBodyPS/display/out/production/nBodyDisplay:/home/ozbolt/BitBucket/PS/nBodyPS/display/lib/jbox2d-library-2.1.2.2.jar:/home/ozbolt/BitBucket/PS/nBodyPS/display/lib/jbullet.jar:/home/ozbolt/BitBucket/PS/nBodyPS/display/lib/jdom-1.1.2.jar:/home/ozbolt/BitBucket/PS/nBodyPS/display/lib/jinput.jar:/home/ozbolt/BitBucket/PS/nBodyPS/display/lib/lwjgl.jar:/home/ozbolt/BitBucket/PS/nBodyPS/display/lib/lwjgl_util.jar:/home/ozbolt/BitBucket/PS/nBodyPS/display/lib/PNGDecoder.jar:/home/ozbolt/BitBucket/PS/nBodyPS/display/lib/slf4j-api-1.6.6.jar:/home/ozbolt/BitBucket/PS/nBodyPS/display/lib/slf4j-simple-1.6.6.jar:/home/ozbolt/BitBucket/PS/nBodyPS/display/lib/slick-util.jar:/home/ozbolt/BitBucket/PS/nBodyPS/display/lib/slick.jar:/home/ozbolt/BitBucket/PS/nBodyPS/display/lib/vecmath.jar:/usr/share/intellijidea-ce/lib/idea_rt.jar Display.NBodyDisplay"


Komunikacija potem deluje, ampak ko pride do uporabe funkcij iz vkljucenih jarov se vse podre:

N = 0, r=10 -> communication succsesfull
Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1886)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at org.lwjgl.Sys$1.run(Sys.java:73)
at java.security.AccessController.doPrivileged(Native Method)
at org.lwjgl.Sys.doLoadLibrary(Sys.java:66)
at org.lwjgl.Sys.loadLibrary(Sys.java:95)
at org.lwjgl.Sys.< clinit >(Sys.java:112)
at org.lwjgl.opengl.Display.< clinit >(Display.java:135)
at Display.NBodyDisplay.setUpDisplay(NBodyDisplay.java:140)
at Display.NBodyDisplay.main(NBodyDisplay.java:54)


Da bi pognal C program iz Jave bi bilo se tezje, saj C vkljucuje knjiznjivo MPI (to je treba klicat na nek svoj nacin spet...).

Ce kdo zna tole resit, bi blo super.

kr?en ::

Ti moras verjetno zbuildat Java program z vsemi dependencyji v en JAR, ki ga potem lahko izvajas. Pravtako moras zbuildat C program v kak .exe ali kaj podobnega, ce ga hoces klicat v Javi.

Tisto ti pa javi, da ne najde LWJGL JAR-a na classpathu programa.

Spura ::

Ne gre za jar ampak za kaksen DLL. Verjetno tale tvoj java program uporablja kak DLL preko JNI.

MrStein ::

Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Flash končno s 64-bitno podporo za Linux

Oddelek: Novice / Brskalniki
306689 (4853) BaRtMaN
»

Octoshape in RTVslo

Oddelek: Omrežja in internet
74090 (3731) M.B.
»

Kako vključiti v jar dodaten jar

Oddelek: Programiranje
6785 (651) jeryslo
»

[JAVA] mysql-connector-java in povezava z Mysql

Oddelek: Programiranje
91882 (1764) Sergio
»

[Java] Prehod na JDK1.5

Oddelek: Programiranje
51302 (1100) drejc

Več podobnih tem