【发布时间】:2018-01-11 10:06:51
【问题描述】:
我下载了可用的时间序列分类工具箱here,我使用该命令成功地在Netbeans(由于兼容性问题而不是Eclipse)上运行
netbeans --jdkhome /usr/lib/jvm/java-1.8.0-openjdk-amd64/
我希望能够在服务器上运行它,因此我需要能够使用命令行运行它。 然而我没有成功。我的猜测是 jdk 有问题(我不习惯 Java,所以可能是别的问题),因为当我运行时
sudo update-alternatives --config java
我明白了
There are 5 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-9-openjdk-amd64/bin/java 1091 auto mode
1 /usr/bin/gij-4.8 1048 manual mode
2 /usr/bin/gij-4.9 1049 manual mode
3 /usr/bin/gij-5 1050 manual mode
* 4 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
5 /usr/lib/jvm/java-9-openjdk-amd64/bin/java 1091 manual mode
其中不包含我在 Netbeans 中使用的 jdk 的路径。 我没有找到方法告诉 Java 我想使用另一个 jdk,所以我尝试不使用:
运行特定主文件的示例
来自TimeSeriesClassification/src:
javac timeseriesweka/classifiers/LearnShapelets.java
java -cp ../bin:. timeseriesweka.classifiers.LearnShapelets
错误:发生 JNI 错误,请检查您的安装并重试
线程“main”中的异常 java.lang.NoClassDefFoundError: TechnicalInformation
在 java.lang.Class.getDeclaredMethods0(Native Method)
在 java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
在 java.lang.Class.privateGetMethodRecursive(Class.java:3048)
在 java.lang.Class.getMethod0(Class.java:3018)
在 java.lang.Class.getMethod(Class.java:1784)
在 sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
在 sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
原因:java.lang.ClassNotFoundException: TechnicalInformation
在 java.net.URLClassLoader.findClass(URLClassLoader.java:381)
在 java.lang.ClassLoader.loadClass(ClassLoader.java:424)
在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
在 java.lang.ClassLoader.loadClass(ClassLoader.java:357)
...还有 7 个
任何有关如何正确设置 Java 的帮助将不胜感激
With(按照 ACV 的答案)
java -cp ../bin/Test.jar:lib/*:. timeseriesweka.classifiers.LearnShapelets
Exception in thread "main" java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: java/lang/invoke/StringConcatFactory
at timeseriesweka.classifiers.LearnShapelets.main(LearnShapelets.java:746)
Caused by: java.lang.NoClassDefFoundError: java/lang/invoke/StringConcatFactory
... 1 more
Caused by: java.lang.ClassNotFoundException: java.lang.invoke.StringConcatFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
【问题讨论】: