- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个小程序和几个 .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
我有所需的 jars,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,并且它位于正确的路径中。
最佳答案
这可能是您未显示的脚本部分中的错误。试试这个:
确保脚本的第一行显示为 #!/bin/bash
确保您位于您认为所在的文件夹中。添加
if [ ! -e "$HSQLDB_JAR" ]; then echo "Jar not found!" ; exit 1 ; fi
在调用 java
之前
要查看 shell 实际执行的内容,请使用 -x
(将 -x
作为参数添加到第一行或使用命令 set -x
激活它)。
如果您需要生成相对于您的脚本的路径,请使用此代码:
BASE=$( cd $( dirname "$0" ) > /dev/null && pwd )
HSQLDB_JAR="$BASE/../lib/hsqldb-2.2.8.jar"
始终引用包含路径的变量,以确保空格正常工作。
关于java - 另一个不寻常的java ClassNotFound,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13967942/
我有一个包含 10 个外部模块的大项目。显然我已经启用了 multidex,因为方法的总数超过了 100k。 现在,如果我在项目中添加“facebook-android”依赖项,当我启动我的应用程序时
ClassNotFound(是的,我知道,有很多关于此异常的帖子;我在这里和其他地方搜索过,但找不到解释) 为什么 Class.forName 会失败? groovy> class Foo { gro
我的 Web 应用程序是使用两个项目构建的,其中一个项目包含 api 和第二个 Web 部件。在 Eclipse 中,我可以在 project-web 中使用 project-api 中的类,但是在部
我正在尝试从 GitHub 运行 Java 项目,但遇到了奇怪的异常。 以下是受影响的代码部分: package de.fau.cs.osr.hddiff.perfsuite; import de.f
我正在尝试将文件中的一些信息读取到某些对象中。 Main 方法只是将信息读入一些字符串变量,然后使用这些字符串来初始化对象。很简单。这些对象使用 BST 存储。 但是,我收到的错误是ClassNotF
当我从命令提示符运行 java 程序时,该程序不会因为 ClassNotFound 错误而无法运行。但我看到的类存在于类路径上的 jar 文件中。当我从 Eclipse 运行时,同样的程序可以工作。不
我有一个小程序和几个 .sh 文件来执行它。我使用 Raspberry-pi 虚拟盒子模拟器来运行它。 (不要问为什么......只是需要它.. :))所以,我的 .sh 文件看起来像: export
我正在努力尝试在 Scala 中设置远程参与者。我正在运行 Scala 2.10.2 和 Akka 2.2.1。 我使用 [为了清楚起见,我缩短了类路径 arg 上的路径] 进行编译: $ scala
我尝试将 RecyclerView 和 CardView 添加到我的项目中 dependencies { compile 'com.android.support:appcompat-v7:21.0.
经过很长时间,对我的代码进行了一些调试和重构,我想重新运行一些测试。我遇到的问题是我总是收到以下错误: "C:\Program Files\Android\Android Studio\jre\bin
我正在学习 Java 并正在阅读这本书:https://www.fca.pt/cgi-bin/fca_main.cgi/?op=2&isbn=978-972-722-791-4 . 在本书中,我有一个
我有麻烦了!我正在尝试通过 IntelliJ IDEA 11 在 JBoss AS 7.1.1.Final 上部署我的应用程序,在部署过程中出现以下异常: 12:23:42,566 ERROR [or
我决定编写 RMI(来自书中),代码也来自书中。我用 rmic 创建了 Stub,并启动了 rmiregistry,但是当我决定编写 java Start Server 时,我遇到了问题,实际上这是我
错误: java.lang.RuntimeException: java.lang.NoClassDefFoundError: Could not initialize class com.Stuff
所以我想我对 memcached 的工作原理有点困惑。我正在使用不同的框架开发相同的API,所有这些框架都包含memcached(java版本的spymemcached)。当我在第一个框架上设置 me
我正在学习 Java 并正在阅读这本书:https://www.fca.pt/cgi-bin/fca_main.cgi/?op=2&isbn=978-972-722-791-4 . 在本书中,我有一个
我正在 spring mvc 中启动一个新项目,当我尝试运行 hello world 时,它抛出错误: 这是我的dispatcher-servlet.xml 映射:
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
我正在尝试在 hadoop 上启动一个字数统计图 reduce。当我要求 hadoop 完成这项工作时,它返回以下内容: Exception in thread "main" java.lang.Cl
我正在尝试在 HashMap 中创建一个通用值类型,如下所示: val aMap = ArrayBuffer[HashMap[String, Any]]() aMap += HashMap() aMa
我是一名优秀的程序员,十分优秀!