网站首页 > 技术文章 正文
用记事本编写一个带有包结构的简单Java程序,注意文件名和类名一致
启动DOS
进入文件所在路径,找到我们所创建的文件。
在文件所在文件夹内执行编译
查看所在文件夹内文件,多出一个TestPackage.class
执行java命令
出现"找不到或无法加载主类"的提示
该如何解决?
先删除之前生成的class文件
使用"javac -d . TestPackage.java"重新编译
查看文件
进入testPackage文件目录,出现我们的class文件
执行运行命令
执行成功。
"javac -d . TestPackage.java"和"javac TestPackage.java"有什么区别?
javac <srcFile>
javac -d . <srcFile>
-d参数用于指定生成class文件的位置,.(点号)表示当前目录。
-d参数的作用是指定生成java包的根目录,"-d ." 表示在当前目录上编译生成java包。
如果省略了-d,则仅仅是在当前目录生成的class文件。大多数情况都是编译生成java,尽量使用-d参数
那为什么有了包结构之后就可以运行程序呢?
因为在TestPackage.java中有包声明testPackage,当执行TestPackage.java源文件时java虚拟机首先会在TestPackage.java当前目录寻找字节码文件,虽然找到了,但是因为在TestPackage.java中有包声明,java虚拟机紧接着去包目录下寻找有没有TestPackage.class字节码文件,没有找到就会提示错误。
猜你喜欢
- 2024-10-27 从bitmap到布隆过滤器,再到高并发缓存设计策略
- 2024-10-27 强大 WebView2 + 不用写 JavaScript 的 htmx.js 「小轻快」开发桌面程序
- 2024-10-27 《JSP》第13节:JSP中的四大作用域介绍
- 2024-10-27 Java,FreeMarker,模板引擎,通过案例代码,学懂模板引擎
- 2024-10-27 面向对象的三大特性(c++面向对象的三大特性)
- 2024-10-27 教你分析9种 OOM 常见原因及解决方案
- 2024-10-27 可动态调节参数的线程池实现(动态调试工具有哪些)
- 2024-10-27 Java,基本类型和引用类型,强引用、软引用、弱引用、虚引用
- 2024-10-27 深入理解Java:类加载机制及反射(java常见类加载器)
- 2024-10-27 JVM系列-6.javap指令介绍(jvm调优)
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)