当类路径没有设置为jdk路径时,java编译器如何找到类文件?

2023-11-27

我正在尝试深入了解 java 编译。所以我收起 IDE 并开始使用 MS-DOS 命令行...

我创建了一个简单的项目,如下面的树中所述:

示例应用程序

|____**src**

       |_____pack
               |______Sample.java
|____**classes**

这是 Sample.java 源代码:

public class Sample 
{

    private String s = new String("Hello, world");

    public Sample(){
          System.out.println(s);
    }
}

我只想编译这个类,所以我使用了 javac 命令:

prompt\SampleApp\src>javac -d ..\classes -sourcepath . pack\Sample.java

一切正常,但我没想到,因为我删除了我的CLASSPATH编译我的 Sample.java 文件之前的环境变量。因此,由于编译器无法找到 java.lang.String 类文件,我预计会出现编译器错误。

我读了这篇文章http://www.ibm.com/developerworks/java/library/j-classpath-windows/这帮助我理解了很多事情。文章作者说默认的类路径是当前工作目录。但我不明白为什么我的源代码编译没有错误。有人可以向我解释一下吗?


因此,由于编译器无法找到 java.lang.String 类文件,我预计会出现编译错误。

简短的回答是编译器knows在哪里可以找到所有标准 Java SE 库类,而无需您告诉它。

更长的答案是String在 bootclasspath 上找到类。这是隐含地由设定的javac命令来引用JDK安装中的相关JAR。这javac命令在常规类路径上查找内容之前先搜索 bootclasspath。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当类路径没有设置为jdk路径时,java编译器如何找到类文件? 的相关文章

随机推荐

  • Java EE 6 CDI 实现之间的差异

    我查看了 JBoss 的 JSR 299 上下文和依赖注入的 Weld 参考实现 我想知道其他 CDI 实现之间的比较 具体来说 我了解 Weld Resin CanDI 由 Caucho 开发 和 Apache OpenWebBeans
  • SQLite 连接未出现在实体数据模型向导中

    我做了什么才到达现在的位置 我安装了该程序集http system data sqlite org index html doc trunk www downloads wiki使用 GAC 和 VS2012 选项 我现在可以连接到现有的
  • 如何封送可变大小的结构数组? C# 和 C++ 互操作帮助

    我有以下 C 结构 struct InnerStruct int A int B struct OuterStruct int numberStructs InnerStruct innerStructs 和一个 C 函数 OuterStr
  • BLAS 中矩阵之间的元素明智乘法?

    我开始在 C 特别是 Intel MKL 中使用 BLAS 函数来创建一些旧 Matlab 代码的更快版本 到目前为止 它运行良好 但我不知道如何对 2 个矩阵 Matlab 中的 A B 执行元素乘法 我知道 gemv 在矩阵和向量之间做
  • 取消所有AsyncTask?

    我有一个用于获取媒体文件拇指的类 这个类似 Loader 的类启动了一个AsyncTask对于每一个ImageView 被称为SomeAdapter getView 任务本身做了很多事情 其中 之一就是调用DiskLruCache 但是当卸
  • 用于检测数据集中太大而无法完全加载到内存中的重复项的算法

    这个问题有最优解吗 描述一种在包含一百万个电话号码的文件中查找重复项的算法 该算法在运行时只有两兆字节的可用内存 这意味着您无法一次将所有电话号码加载到内存中 我的 天真的 解决方案是一个 O n 2 解决方案 它迭代这些值并只加载文件块而
  • 将 log4j.properties 转换为 log4j.xml 的脚本

    我需要使用自定义过滤器 因此我需要将一些长 log4j properties 文件转换为 log4j xml 有人知道有一种工具可以做到这一点 或者愿意贡献一个他们使用过的工具吗 到目前为止 搜索还没有找到这样的工具 我也需要这样做 但找不
  • 使用 AAR 和源 JAR 将 Android 库发布到 Maven

    有人可以给我一个关于如何使用的提示吗maven publishGradle 插件发布com android library带有 AAR 和源 jar 的项目 模块 我可以用旧的来做到这一点maven插件 但我想使用新的maven publi
  • 有没有办法获取某个类型的成员以及所有后续的基本类型?

    我有一个 I类型符号 目的 如果我打电话获取会员 它给我当前类型的成员 而不是基类 我知道我可以使用 BaseType 属性来挖掘它 并使用一些迭代代码来获取所有属性 有没有更简单的方法来获取所有成员 无论继承层次结构的级别如何 如果您正在
  • 如何在 Jupyter Notebook 中将“Completer.use_jedi”永久配置为“False”

    每次有新的Jupyter笔记本实例打开后 需要 config Completer use jedi False在自动完成功能开始工作之前运行命令 每次都要配置 好累use jedi to False在编码之前 请建议是否有永久修复以在 ju
  • having 子句出错

    select SUM Bill from ProductSaleReport group by PCI having MONTH Date between 1 and 3 请问有谁可以吗 帮我找到问题 我收到错误 消息 8121 16 级
  • PerformanceCounterCategory.GetCategories() 抛出异常 ArgumentException - 参数“categoryName”的值“无效”

    当我尝试运行此代码时 var categories System Diagnostics PerformanceCounterCategory GetCategories 我收到 ArgumentException 异常 我已经尝试过以下方
  • 如何首先使用实体​​框架5模型生成每个层次结构的表

    我首先使用 Visual Studio 2012 和实体框架 5 模型 我想使用每个层次结构一个表策略生成数据库 但找不到该选项 Entity Designer Database Generation Power Pack 不适用于 Vis
  • 将输入转换为大写的 Uppercase 属性

    我正在 MVC4 中工作 想要使用Uppercase属性 这个想法是 Uppercase 属性的存在将导致模型值在到达服务器时转换为大写 目前我的模型中有以下代码 Required Display Name Account Code Str
  • 拖/放时可以使用鼠标滚轮吗?

    在 WinForms 中 调用DoDragDrop要开始拖动项目 控件不再使用鼠标滚轮滚动 并且控件的MouseWheel事件不再被调用 直到用户放下他正在拖动的任何东西 有没有办法让鼠标滚轮在拖动时工作 你可以获得全球MouseWheel
  • 如何部署 Angular 应用程序?

    一旦 Angular 应用程序进入生产阶段 如何部署它们 到目前为止我见过的所有指南 甚至在角 io 依靠 lite server 提供服务并通过 browserSync 来反映更改 但是当您完成开发后 如何发布应用程序 我是否导入所有编译
  • 如何在运行时向用户请求提升权限?

    某些以普通用户启动的应用程序会在必要时请求提升权限 例如文件管理器需要写入此类文件夹 然后继续操作 我怎样才能复制这种行为 正如 Tam s 指出的那样 您需要启动一个具有更高权利的新流程 我过去进行了很多搜索 但没有找到任何方法来提升当前
  • ASP.Net Core 2.0 - 如何从中间件返回自定义 json 或 xml 响应?

    在 ASP Net Core 2 0 中 我尝试返回带有状态代码的 json 或 xml 格式的消息 我从控制器返回自定义消息没有问题 但我不知道如何在中间件中处理它 到目前为止 我的中间件类看起来像这样 public class Head
  • .net 随机生成器是如何实现的?

    我的意思是 net c 中的标准 随机生成器 Random random new Random seed random next 我知道文献中有数十或数百种方法 但我无法找出 net框架目前使用的是哪一种 提问的原因 如果我抽取很多随机变量
  • 当类路径没有设置为jdk路径时,java编译器如何找到类文件?

    我正在尝试深入了解 java 编译 所以我收起 IDE 并开始使用 MS DOS 命令行 我创建了一个简单的项目 如下面的树中所述 示例应用程序 src pack Sample java classes 这是 Sample java 源代码