java - 如何运行java类命令行?

标签 java cmd classpath scjp

我有以下测试题:

Given:

1. package com.company.application;
2.
3. public class MainClass {
4. public static void main(String[] args) {}
5. }

And MainClass exists in the /apps/com/company/application directory. Assume the CLASSPATH environment variable is set to "." (current directory).Which two java commands entered at the command line will run MainClass? (Choose two.)

A. java MainClass if run from the /apps directory
B. java com.company.application.MainClass if run from the /apps directory
C. java -classpath /apps com.company.application.MainClass if run from any directory
D. java -classpath . MainClass if run from the /apps/com/company/application directory
E. java -classpath /apps/com/company/application:. MainClass if run from the /apps directory
F. java com.company.application.MainClass if run from the /apps/com/company/application directory

我认为正确的是 D 和 E,但正确的是 B 和 C,我想知道为什么?

最佳答案

你应该使用它的全名来执行一个类。一个类的全名包括:

<package location> + <simple name of class>

考虑到这一点,MainClass 全名是 com.company.application.MainClass

Java 可以从包树中包含顶级目录的目录中定位此类。在示例中,根目录是 /apps:

apps <-- root
+ com <-- here the package starts
  + company
    + application
      - MainClass.class

所以这个根目录应该在类路径中,以便 Java 程序(JVM)可以访问已编译的类和应用程序的入口点。


来自问题:

Assume the CLASSPATH environment variable is set to "." (current directory).

选项 B 指出:

B. java com.company.application.MainClass if run from the /apps directory

因为你在/apps目录下,当前目录是CLASSPATH,所以Java可以找到指定的类来执行。

选项 C 指出:

C. java -classpath /apps com.company.application.MainClass if run from any directory

在这种情况下,您将 /apps 设置为 CLASSPATH,因此 Java 可以找到要执行的指定类。

所有其他选项都无法完成上述解释。

关于java - 如何运行java类命令行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26385957/

相关文章:

windows - 任务列表未检测/支持超过 21 个字符的进程名称

java - 如何在需要文件位于类路径中的IntelliJ中运行maven项目?

Randoop 的 Java 类路径问题

java - Bukkit Java 编码,夜间检查器

java - 将一个特定条目从一个 LinkedHashMap 添加到另一个 LinkedHashMap

java - android.support.v4 库错误

c# - 如何使用notepad++运行c#代码?

java - 如何在 java 中重用 SimpleDateFormat 类对象以获得不同格式的答案

visual-studio - VS2019 构建前和构建后事件始终失败,代码为 1

java - 没有找到类定义