我有一个 Compile.sh
文件。
这个就像一个魅力:
cd src
javac model/JNIResultSet.java
javah -jni model.JNIResultSet
cp model_JNIResultSet.h ./../bin/
cd ..
cd bin
gcc -fPIC -o libspieler.so -shared -I/usr/java/jdk1.8.0_73/include/ SharedTable.c -lc
java -Djava.library.path=./../bin/ app.Main
我的问题是我不想将我的源放在 bin 文件夹中。
我想将它们放在单独的文件夹中。
为此,我的脚本看起来像这样:
cd src
javac model/JNIResultSet.java
javah -jni model.JNIResultSet
cp model_JNIResultSet.h ./../data/
cd ..
cd data
gcc -fPIC -o libspieler.so -shared -I/usr/java/jdk1.8.0_73/include/ SharedTable.c -lc
cd ..
cd bin
java -Djava.library.path=./../data/ app.Main
我不知道为什么这个不起作用。我也不异常(exception),但该程序也无法正常工作。你知道怎么解决吗?
最佳答案
工作脚本有:
cd bin
gcc -fPIC -o libspieler.so -shared -I/usr/java/jdk1.8.0_73/include/ SharedTable.c
另一个版本有:
cd data
gcc -fPIC -o libspieler.so -shared -I/usr/java/jdk1.8.0_73/include/ SharedTable.c -lc
所以SharedTable.c
肯定在bin
目录下,gcc
命令找不到,因为它已经不在当前目录。尝试
改为使用相对路径:
gcc -fPIC -o libspieler.so -shared -I/usr/java/jdk1.8.0_73/include/ ../bin/SharedTable.c -lc
关于java - 在 Linux 终端中编译项目不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40141415/