Java命令行使用导入的jar

时间:2017-10-09 17:38:52

标签: java jar

我确信这是一个愚蠢的问题,之前每个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文件。但我不知道为什么。

请提前告知,谢谢。

1 个答案:

答案 0 :(得分:0)

您需要在JVM选项之后指定类名,因为在类名之后的任何内容都被视为类的参数,而不是JVM。

试试这个:

'java -cp if97.jar steam'