代码在Netbeans中运行但不在命令行中运行

时间:2018-01-11 10:06:51

标签: java netbeans

我下载了时间序列分类工具箱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

     

at java.lang.Class.getDeclaredMethods0(Native Method)

     

at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)

     

at java.lang.Class.privateGetMethodRecursive(Class.java:3048)

     

at java.lang.Class.getMethod0(Class.java:3018)

     

在java.lang.Class.getMethod(Class.java:1784)

     

at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)

     

at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)

     

引起:java.lang.ClassNotFoundException:TechnicalInformation

     

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)

     

... 7更多

任何有关如何正确设置Java的帮助都将受到赞赏

(按照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

1 个答案:

答案 0 :(得分:0)

试试这个:

-cp "../bin/Test.jar:lib/*:."代替你:

-cp ../bin:.