小さなプログラムと、それを実行するためのいくつかの .sh ファイルがあります。Raspberry-pi 仮想ボックス エミュレーターを使用して実行します。(理由は聞かないでください...必要なだけです.. :)) したがって、私の .sh ファイルは次のようになります。
export HSQLDB_JAR=../lib/hsqldb-2.2.8.jar
java -classpath $HSQLDB_JAR org.hsqldb.Server -database.0 ../my-hsqldb/my-hsqldb -dbname.0 my-hsqldb
私は必要な瓶を持っています、Javaは正しくインストールされています(数回チェックされています)、何とか何とか、すべて同じです:
rpi@RaspberryPi:/home/snb/my/apps/MyApp/bin$ sh skysql.sh
: not found2:
Exception in thread "main" java.lang.NoClassDefFoundError: org/hsqldb/Server
Caused by: java.lang.ClassNotFoundException: org.hsqldb.Server
最も興味深いのは、bash から直接 sh ファイルからスクリプトを実行すると、動作することです。しかし、.shファイルを実行すると、このエラーが発生します:(
どんな助けでも大歓迎です。
編集
次のディレクトリにはすべてのアクセス ルールが含まれているため、セキュリティ上の問題は発生しません。それらはすべてアクセス可能です。
編集#2
提供された回答とコメントを使用しましたが、それが起こりました:
まだ同じもの:(
私の .sh ファイル:
#!/bin/bash export HSQLDB_JAR="$(pwd)/hsqldb-2.2.8.jar" echo $HSQLDB_JAR java -classpath $HSQLDB_JAR org.hsqldb.Server -database.0 ../my-hsqldb/my-hsqldb -dbname.0 my-hsqldb
端末出力は次のとおりです。
rpi@RaspberryPi:/home/snb/my/apps/MyApp/bin$ sh skysql.sh
: not found2:
: not found4:
/home/snb/my/apps/MyApp/lib/hsqldb-2.2.8.jar
: not found6:
Exception in thread "main" java.lang.NoClassDefFoundError: org/hsqldb/Server
Caused by: java.lang.ClassNotFoundException: org.hsqldb.Server
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: org.hsqldb.Server. Program will exit.
: not found8:
ご覧のとおり、.jar が実際に見つかり、正しいパスにあります。