我确信这是一个愚蠢的问题,之前每个java程序员都必须提出这个问题。但我根本找不到相关的问题。
这是关于子目录的,但我没有任何子目录,因为它们都与java文件在同一目录中,而我从Executable jar file error执行命令行的目录
此解决方案给出了与我在下面写的相同的错误:Java command line with external .jar
其他人(我没有链接)谈论Eclipse和其他IDE,但我没有使用IDE,只是一个Linux终端。
我正在尝试从http://www.hummeling.com/IF97导入公共jar文件。下载的jar文件已重命名为if97.jar。
我有一个名为steam.java的java文件,其中包含以下命令:
'
import com.hummeling.if97.IF97;
IF97 H2O = new IF97(IF97.UnitSystem.ENGINEERING);
System.out.println("test H2O table PSpecificEnthalpy(1): "+H2O.specificEnthalpyPT(1,300));
System.out.println("test H2O table PSpecificEnthalpy(5): "+H2O.specificEnthalpyPT(5,300));
'
但我不知道如何在命令行中运行此文件。
我通过输入成功编译:
'javac -cp if97.jar ~/test/steam.java'
现在我有一个名为steam.class
的文件但是当我执行它时:
'java steam -cp if97.jar'
或
'java steam -jar if97.jar'
我收到错误:
Exception in thread "main" java.lang.NoClassDefFoundError: com/hummeling/if97/IF97
at steam.start(steam.java:364)
at steam.main(steam.java:341)
引起:java.lang.ClassNotFoundException:com.hummeling.if97.IF97
我正在尝试使用终端在Linux Ubuntu 16.04中执行此操作。这两个文件(steam.java和if97.jar)都在我执行javac&的同一个Home目录中。 java命令。
我相信(或者我错了)问题是java无法找到jar文件。但我不知道为什么。
请提前告知,谢谢。
答案 0 :(得分:0)
您需要在JVM选项之后指定类名,因为在类名之后的任何内容都被视为类的参数,而不是JVM。
试试这个:
'java -cp if97.jar steam'