本文默认:您会使用cmd进行不带包的Java文件的编译和运行。(即javac **.java与java **)

1、一个带包的Java文件的编译与运行

首先编写了一个Main.java文件,注意代码中存在导包语句:package test;

在路径栏中输入cmd,从当前目录打开命令行

要知道,我们虽然写了package test; 但是我没不用自己手动创建test文件夹,而是使用如下命令进行编译,程序会自动产生test文件夹,并将class文件放在里面。

javac -d . *.java




那么如何运行呢?

java test.Main

便可运行

这里需要注意的是 java 命令 后面跟的参数是全类名,即带包名的类名,而不只是简写的类名。
(全类名:包名.类名)

2、辩证思考,如果反其道而行呢?

我们上面编译带包的Java文件是使用的 javac -d命令,如果我还是像编译不带包的Java文件那样编译呢,也就是使用javac命令,会发生什么?
实践是检验真理的唯一标准!
我们写一个简单的A.java文件

package test;
public class A {String name;int age;public void setName(String _name){this.name =_name;}public void setAge(int _age){this.age = _age;}public String getName(){return this.name;}public int getAge(){return this.age;}public static void main(String[] args){A a = new A();//a.setName("zs");a.name="zs";a.setAge(18);System.out.println(a.getName()+a.getAge());}
}

我们直接用javac编译,看看会发生什么化学反应
我们发现编译通过了,并且在与Java文件同级目录下出现了对应的Class文件

接着我们运行一下

出现了这样的错误,原因是我们在 A.java 中有包声明,当执行 A.java 源文件时 java 虚拟机首先会在 A.java 当前目录寻找字节码文件,虽然这下找到了,但是因为在 A.java 中有包声明,java 虚拟机紧接着去包目录下寻找有没有 A.class 字节码文件,这下找到了才能够成功执行,不信我们做做实验!


这时我们发现执行还是不能通过??这时为什么呢?这里是许多新手遇到的问题,在这里大家必须谨记一点:Java 命令的参数是"类的完整类名",而不是"文件名"。

这个源程序的完整类名应该是 mypack.A,因此应该这么写:java test.A


这下就可以成功执行了!

3、包的导入创建编译

上面讲的这些都是一般情况,也就是类路径都是在当前目录下,当类路径不在当前目录下是否还能执行呢?又该如果执行呢?

如图我们把Main.java文件剪切到了上一级目录,Main的class文件在csdn/test下面

这时我们就需要自己设置 classpath 参数。例如:

运行成功

Java 中带包的类的编译与运行相关推荐

  1. Java中的包,类的导入,静态导入

    包的作用 1. 为了更好的组织代码,能够将自己的代码与代码库的代码分离. 2. 在需要合作完成的工作中,可以使用分包的方式来尽量的减少类命名的冲突. Sun公司推荐程序员使用公司域名的反向字符作为公司 ...

  2. 【JAVA系列】Java中的包、类的继承、多态、抽象类与接口

    文章目录 前言 一.包及访问权限 1.什么是包? 2.如何导入包? 3.JDK中常见的包 4.包的访问控制权限 二.继承 1.继承的基本概念 2.继承时方法调用顺序 3.super和this关键字 4 ...

  3. JAVA——声明包类的编译与运行解决方案

    问题描述 package albert;public class Demo {public static void main(String[] args) {System.out.println(&q ...

  4. Java中通过代理对类进行修改

    JAVA中的静态代理.动态代理及JDK proxy和CGLIB.Javassist.ASM实践 简介 Java中对已经有的类进行修改,改变或调整其执行,这可以通过代理来实现.Java的class文件是 ...

  5. Java中的包(package)详情解释

    一.Java 包(package) 为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间. 包的作用 1.把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用. 2.如同文件夹一 ...

  6. Java中jar包怎么使用_java中jar包的使用方法

    java中jar包的使用方法 发布时间:2020-06-23 11:08:05 来源:亿速云 阅读:162 作者:Leah 这篇文章将为大家详细讲解有关java中jar包的使用方法,小编觉得挺实用的, ...

  7. 在java中在包com.db_java基础试题及其答案 (1)

    java基础试题及其答案 (1) (16页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 1Java试题1)java程序中,main方法的格 ...

  8. java ftp ftpclient_详解JAVA中使用FTPClient工具类上传下载

    详解JAVA中使用FTPClient工具类上传下载 在Java程序中,经常需要和FTP打交道,比如向FTP服务器上传文件.下载文件.本文简单介绍如何利用jakarta commons中的FTPClie ...

  9. Java中的对象和类

    一. OOP中的基本概念     Java的编程语言是面向对象的,采用这种语言进行编程称为面向对象编程(Object-Oriented Programming, OOP), 它允许设计者将面向对象设计 ...

最新文章

  1. 浅谈并发与并行(一)
  2. ES6数组新增的几个方法
  3. Nginx教程系列五:实现负载均衡配置
  4. python 嵌入式 linux 产品 发布_基于嵌入式Linux进行Python应用开发
  5. 介绍一款受欢迎的.NET 开源UI库
  6. 普通公司员工的编程水平与阿里巴巴有多大差距?
  7. Android_L(64bit) 模拟器配置及创建项目
  8. 前端本地使用线上数据
  9. Glide4 高效加载图片的配置【转】
  10. 单元格下拉全选快捷键_excel全选快捷键是什么,excel表格全选快捷键是什么?...
  11. Windows下最快的磁盘空间分析软件——WizTree
  12. 未经授权,直接划扣资金!这些支付机构的用户要小心
  13. RPG Maker MV 路标,随机移动,随机对话
  14. 情感分析(判断文章正负向)
  15. 虚拟机的桥接模式和NAT模式
  16. Prometheus + Grafana + alertmanager实现Substrate区块链节点实时监控报警系统(上)
  17. Kotlin 特色之 Sealed Class 和 Interface
  18. 访问网站报错‘您目前无法访问XXXX 因为此网站使用了 HSTS
  19. [湖湘杯 2021 final]Penetratable
  20. 大数据周会-本周学习内容总结09

热门文章

  1. AOSP的编译及刷机
  2. 虚拟环境命令+linux基本操作(各种版本查看+进程操作+目录+文件)
  3. 司猫小蓝的爸爸|ONES 人物
  4. Arduino光敏传感器控制LED灯亮度
  5. 蒙太奇效果 android,Effect Photo Editor app
  6. C语言编程判断是否为2的幂,C语言判断一个数是否是2的幂次方或4的幂次方
  7. Excel 2010 SQL应用038 以数值范围为条件的查询
  8. 毕业设计日志(15)
  9. WEB前端学习 (7)CSS复习六(布局-定位)
  10. 印度孟买机器人餐厅_编辑精选|印度孟买餐厅 Masque 获评亚洲最值得关注奖