MRJ SDK $BFb$N(B MPW Tools $B$O!"I,MW$,$"$l$P(B "{MPW}User Commands"
$B$K%3%T!<$7$F$*$/!#(B
JNI
$B$r;H$o$J$1$l$P$J$i$J$$$N$+!"$h$/$h$/9M$($k!#(Bclasspath $B$r@_Dj$7$F$*$/!#(B
Set -e classpath ':,HD:system:extentions:MRJ Libraries:MRJClasses:JDKClasses.zip,
HD:system:extentions:MRJ Libraries:MRJClasses:MRJClasses.zip,
HD:system:extentions:MRJ Libraries:MRJClasses'
$B$J$I!#(B
$B>e5-$r5-=R$7$?(B script $B%U%!%$%k$r(B "{MPW}Startup Items"
$B$KF~$l$F$*$/!#(B
System.loadLibrary()
$B$K$*4j$$$7$F6&M-%i%$%V%i%j$r%m!<%I$9$k!#$U$D!
public class Hogehoge {
static {
try {
System.loadLibrary("hogeLib");
}
catch (UnsatisfiedLinkError e) {
System.err.println("can't load library.");
}
}
public native String nativeMethod();
}
Roaster $B$+$i$J$i(B Project $B%a%K%e!<$+$i(B make (command + m) $B$rA*$V$@$1!#(BMPW $B%D!<%k$O(B JDK $B$HF1$8$J$N$G(B javac $B$G2B$$!#(B
$B%Q%C%1!<%8L>$,%G%#%l%/%H%jL>$K%^%C%W$5$l$k$N$G!"3+;O0LCV$KCm0U!#%Q%C%1!<%8AjBP%G%#%l%/%H%j$N%H%C%W$K5o$J$1$l$P$J$i$J$$!#(B
$B%Q%C%1!<%8L>$,%G%#%l%/%H%jL>$K%^%C%W$5$l$k$N$G!"3+;O0LCV$KCm0U!#%Q%C%1!<%8AjBP%G%#%l%/%H%j$N%H%C%W$K5o$J$1$l$P$J$i$J$$!#(B
$B%Q%C%1!<%8AjBP%G%#%l%/%H%j$N>e$+$i%U%)%k%@$4$H%I%m%C%W$7$F!"(Bclasspath $B%U%#!<%k%I$r%(%G%#%C%H$9$l$P2B$$!#(B
JNI-Style Prototypes $B$O(B disable $B$K$J$C$F$$$k$,!">o$K(B on $B>uBV(B (-jni
) $B$J$s$@$=$&$J!#(B
help $B%\%?%s$r2!$7$F$_$k$Y$7!#(B
export
$B;XDj$,I,MW!#%j%s%/;~$K;XDj$9$kJ}K!$b$"$k$,!"(B #pragma
$B$NJ}$,4JC1!#(B
javah $B$,@8@.$7$?%X%C%@$N%$%s%/%k!<%I$rK:$l$:$K!#(B
#pragma export on
#include "header produced by javah."
#include <stdio.h>
#include <stdlib.h>
#define MY_JNI_VERSION ("1.0 build 1")
JNIEXPORT jstring JNICALL Java_jni_sample_JNITest_getVersion
(JNIEnv *env, jobject jobj)
{
return (*env)->NewStringUTF(env, MY_JNI_VERSION);
}
($B8eN,(B)
jni.h
$B$O(B MRJ SDK/Interfaces&Libraries/CIncludes
$B$K$"$k!#(B
MPW $B$N(B include path $B$K%3%T!<$7$F$b;H$($k$,!"$=$N>l9g$O(B
jni_md.h
$B$bK:$l$J$$$h$&$K!#(BSystem.loadLibrary()
$B$KEO$9%i%$%V%i%jL>$H9gCW$7$F$$$J$1$l$P$J$i$J$$!#(B
($B3HD%;R$r=|$/(B)$B$3$l$rAv$i$;$k$H!"(B make $B%U%!%$%k!V%W%m%0%i%`L>(B + .make$B!W$,F@$i$l$k(B
$B$3$l$G(B make $B0lH/$G6&M-%i%$%V%i%j$,$G$-$l$PJ86g$J$$$N$@$,!"$b$&0l2U=jSystem.loadLibrary()
$B$KEO$9%i%$%V%i%jL>$H9gCW$7$F$$$J$1$l$P$J$i$J$$!#(B
$B%j%s%/!&%*%W%7%g%s$G;XDj$rDI2C$9$k!#(B
($BA0N,(B)
LibraryName = "hogeLib"
($BCfN,(B)
myJNITest.shlib ÄÄ {¥MondoBuild¥} {Objects¥PPC}
PPCLink ¶
-fragname {LibraryName} ¶ ($B
($B!V%+!W$K8+$($k$N$O(B option + d, $B!V%H!W$K8+$($k$N$O(B option + f)
Nuild $B%a%K%e!<$+$i(B Build... / Full Build... $B$r;XDj!#%;%C%7%g%s$N:G=i$N0l2s$@$1%W%m%0%i%`L>$r?R$M$F$/$k$N$GEz$($F$d$k!#(B
Roaster $B$N(B Project $B%a%K%e!<(B $B$+$i(B Run with Apple MRJ (cmd + r) $B$GAv$i$;$k$H!"%+%l%s%H!&%G%#%l%/%H%j$K(B JBindery document (Crtt: jint, Type: jrun) $B$,$G$-$k!#$3$l$r0lEY(B JBindery $B$K%I%m%C%W%$%s$7$F%"%W%j%1!<%7%g%s$K$7$F$*$/!#$s$G!"6&M-%i%$%V%i%j$b$3$3$KCV$$$F$*$1$P$h$$!#0lEY%"%W%j%1!<%7%g%s2=$7$F$$$F$b!":FEY(B JBindery $B$K%I%m%C%W%$%s$9$l$P!"3F
$B%G%P%C%0L\E*$G(B $BM>O?(B
printf
$B$,;H$($k!#(BMPW $B$G:n$C$?(B shlb $BFb$GI8=`=PNO$K=q$-=P$9$H!"%U%!%$%k$K%j%@%$%l%/%H$7$F$/$l$k$N$G$"$k!#$"$j$,$?$d!#(B
MPW $B$G(B Squeak $B$r:n$C$F$_$l$PH=$k$h$&$K!"%"%W%j%1!<%7%g%s$G$b!"I8=`=PNO$K=q$-=P$9$H%U%!%$%k$K%j%@%$%l%/%H$7$F$/$l$k$N$G$"$k!#(B
Created: Jan, 2000.