当前位置: 首页 > news >正文

JAVA自学之路1.1:JAVA入门纠错

1.1、JAVA入门纠错

在JAVA入门这篇文章里有些问题和错误需要纠正,懒得再改那篇文章了,直接写在这好了。

package test.test1;public class HelloWorld {public static void main(String[] args) {System.out.println("Hello World");}
}

在之前的文章里,我将HelloWorld.java文件放在了E盘根目录下,然后自己创建了:E:\test\test1这个目录。然后执行了javac -encoding utf-8 -d . HelloWorld.java,.class文件也正常生成在了目标路径下。然后也能正常运行。

但是我忘记说这个命令需要注意当前工作目录了!

假设我的当前工作目录是:E:\test\test1,然后执行javac -d . HelloWorld.java,会发生下面的状况:

image-20260124162042879

image-20260124162233687

它在这个test1文件夹下又创建了一个\test\test1!因为这条命令里javac的执行逻辑如下:

  • 读取你的 .java 文件;
  • 发现 package test.test1;,在当前目录(.)下创建 test\test1\HelloWorld.class(由 -d 指定)。

javac 编译器在编译时,并不会强制检查源文件的物理路径是否和 package 声明一致,它只做上面的两件事。

关于-d指令:-djavac(Java 编译器)命令中的一个非常重要且常用的选项,它的全称是 “destination”,意思是:指定编译后生成的 .class 文件存放的根目录。格式如下:

javac -d <目标目录> <源文件>.java

如果我在E:\test\test1这个目录使用命令行,然后执行javac -d . HelloWorld.java,因为javac没有在这个目录里找到\test\test1这个目录,那么它就会自动创建子目录:

E:\test\test1\test\test1\HelloWorld.class   ❌ 错了!

正确做法就是我之前上一篇文章的演示,在E盘根目录下执行该命令。

那如果你不小心将.java文件放在这个目标文件夹下,还想要正常执行编译的话得换个命令:

image-20260124165953123

image-20260124170016353

其实这种做法更加方便,因为当前工作目录就是package指定路径所以可以直接用javac编译。

如果源代码里有中文就改成javac -encoding utf-8 HelloWorld.java

我个人更加推荐这种做法,把源文件放在目标路径下更符合标准,也方便文件管理,而且IDEA创建JAVA类也是这么干的。

http://www.jsqmd.com/news/294400/

相关文章:

  • 2026软考高级系统架构师备考资料-录播+直播
  • 微信立减金回收攻略,方法、流程与折扣全解析
  • 安达发|精准排产,守护生命:医疗器械行业车间排产的数字化革命
  • 2026年市场评价好的纸盒品牌推荐排行,纸盒/彩印包装/农产品纸箱/工业纸盒/纸箱/工业纸箱,纸盒批发厂家推荐排行
  • Deepseek问答:开发人员如何选书
  • php开源短视频源码,JSON对象转化API
  • 短视频平台php源码,字符缓冲流的特有功能
  • 短视频app搭建,如何实现毛玻璃效果?
  • 小视频平台源码,ElementUI 本地分页
  • C 语言基础:输入输出、运算符与流程控制全梳理
  • 鸿蒙APP开发从入门到精通:ArkUI组件库详解与常用组件实战
  • Typescript——泛型
  • Win11 轻松设置更新暂停至 2042年告别过度弹窗 卸载系统冗余软件
  • 实战复盘:如何用 HTML+JS+AI 打造一款“影迹”智能影视管理系统
  • 从对象结构到锁机制:Java 对象锁与类锁深度解析
  • 什么是 Java 中的原子性、可见性和有序性?
  • 2000亿美元!2026年全球游戏行业的新格局与新变量
  • 使用 wxPython 构建文件编辑器与预览器:从零到一的完整实现
  • 从零构建轻量级企业考勤订饭系统:Node.js + SQLite 全栈实战复盘
  • python如何发送邮件
  • 【课程设计/毕业设计】基于Springboot的在线游戏商城系统基于springboot的游戏售卖商城系统【附源码、数据库、万字文档】
  • Python如何识别周围WiFi:跨平台实现与进阶技巧
  • 一键生成100条小红书笔记!DeepSeek+火兔工具箱的组合太牛了!
  • 【毕业设计】基于springboot的助农扶贫系统(源码+文档+远程调试,全bao定制等)
  • 白盒测试 接口测试 自动化测试
  • 2026年上海企业管理咨询公司权威推荐:卓越绩效模式/ 绩效模式 /绩效分析模式/ 团队绩效模式/高绩效心理建设源头服务商精选
  • 雅思网上辅导终极榜单推荐|2026 雅思网上辅导实测 全国适配机构汇总
  • Router_T000_ConceptMECE
  • 离散化详解
  • 山东一卡通(礼遇卡)哪里回收方便,1分钟变现技巧