无法设置 CLASSPATH

无法设置 CLASSPATH

我使用命令“java -cp /home/ubuntu/myapp”将命令设置为 mu app 类所在的目录。但是我似乎没有运气。终端只是回答我一个可能的 java 命令列表 - 有趣的是,其中包括“-cp”。我如何让 Ubuntu 认真对待我并真正按照我说的去做?

答案1

执行摘要

java -cp不会自动运行指定类路径中的程序,它仅指定运行 Java 程序时要使用的类路径然后您必须在同一个命令中指定它。

完整解释

java运行 Java 程序。它不会修改程序或存储有关程序的持久配置。

国旗-cp没有类路径,它指定运行 Java 程序时使用的类路径。

运行java仅有的标志-cp(及其参数)是无效语法。您必须告诉java 你想用这个类路径运行什么 Java 程序。这将使用该类路径运行该程序一次。除非再次指定类路径,否则它不会导致该程序将来使用该类路径运行。

从您的问题中无法清楚了解您到底想要完成什么,但我在下面详细介绍了几种可能性。

(如果您仍然需要更多信息,请随意编辑您的问题以澄清并对此答案发表评论,或者如果您发现您有单独的问题,您可以单独提出。java该命令的手册页也可能有帮助;请注意,类或文件的名称是必需的。要获取计算机上jar安装的确切版本的手册页,请运行。)javaman java

您可能根本不必手动设置类路径。

如果myapp是位于 中的目录/home/ubuntu,其中包含程序的类,则您(通常)根本不需要指定类路径。在这种情况下,只需运行该程序(即,将包含程序函数的类的名称传递mainjava)。

例如,如果.class包含您的方法的类的文件main/home/ubuntu/myapp/launch-myapp.class,则只需运行:

java /home/ubuntu/myapp/launch-myapp

(请注意,您没有指定.class后缀,因为它是隐含的。)

大多数 Java 程序由多个类组成,并且通常所有.class文件都打包成一个.jar文件。如果是这种情况,请java使用该-jar标志运行并指定其完整文件名。

例如,如果你的程序的类(包括包含的类main)由文件提供/home/ubuntu/myapp/myapp.jar,只需运行:

java -jar /home/ubuntu/myapp/myapp.jar

请注意,要使用 运行.jar文件java -jar,您需要.jar在文件名末尾指定扩展名;它是不是被认为是暗示。

更不常见的是,您可能确实想手动指定类路径。

为此,您必须指定类路径还有您想要运行的 Java 程序(即包含其方法的类main)。

例如,假设你想/home/bob/myapp.class使用 classpath运行/home/ubuntu/myapp。那么你可以运行:

java -cp /home/ubuntu/myapp /home/bob/myapp

/home/bob/myapp.jar或者如果你使用该类路径运行:

java -cp /home/ubuntu/myapp -jar /home/bob/myapp.jar

您可能正在尝试设置默认类路径,以便在将来运行任何 Java 程序时使用(指定备用类路径时除外)。

如果你正在尝试这样做,则应设置CLASSPATH环境变量。请参阅官方文件作为指出经过卡雷尔

简而言之,您只需创建CLASSPATH一个以分号分隔的目录列表,以便自动搜索。

有关设置的更多信息环境变量, 看这个问题这个 Ubuntu 文档 wiki 页面

相关内容