在CMD窗口中使用javac和java命令进行编译和执行带有包名的具有继承关系的类

一、背景

  最近在使用记事本编写带有包名并且有继承关系的java代码并运行时发现出现了很多错误,经过努力一一被解决,今天我们来看一下会遇见哪些问题,并给出解决办法。

二、测试过程

 1.父类代码

 1 package com.hafiz.zhang;
 2
 3 public class Fu
 4 {
 5     private Integer i ;
 6
 7     public void sayHello(String name) {
 8         System.out.println("Hello " + name);
 9     }
10 }

  2.子类代码

1 package com.hafiz.zhang;
2
3 public class Zi extends Fu
4 {
5     private static String name = "Hafiz.Zhang";
6     public static void main(String[] args) {
7         new Zi().sayHello(name);
8     }
9 }

1)第一次直接在基类和子类所在的目录运行javac Zi.java命令,出现以下错误:

解决办法为:我们需要使用javac *.java命令来进行运行,因为此时存在继承关系,编译子类的同时也需要先编译父类

2)运行java Zi命令,出现以下错误

这是什么原因呢?因为我们在编写程序时用到了包名,所以运行类文件时,需要完整名称,命令修改为:java com.hafiz.zhang.Zi

我们会发现出现以下错误

这是因为我们不存在子文件夹com/hafiz/zhang并且在该子文件夹下不存在Zi.class文件,故找不到主类。

解决办法是:使用javac  -d . *.java("-d ."代表在当前目录下创建包路径)命令来进行编译,这样javac命令会自动帮我们创建包名所指定的文件夹,并在该文件夹下创建Zi.class文件。

此时我们还发现,已经自动生成子文件夹com/hafiz/zhang并且在该子文件夹下存在Zi.class文件了。

这时我们再运行:java com.hafiz.zhang.Zi命令,程序执行成功!

由此我们得出了在CMD窗口中使用javac和java命令进行编译和执行带有包名的具有继承关系的类的方式:

1.使用javac -d . *.java进行编译

2.使用java com.hafiz.Zi(带包名的类全名)命令进行运行!

时间: 2024-12-14 14:53:52

在CMD窗口中使用javac和java命令进行编译和执行带有包名的具有继承关系的类的相关文章

cmd窗口中的复制和粘贴快捷键

前期需求,进入cmd窗口之后需要从里面拷贝内容和粘贴内容进去? 解决方法: 1.从cmd窗口中拷贝指定内容操作步骤 1.鼠标右键点击标记按钮,选中目标内容 2.按下enter键(作用是常规的ctrl+C复制功能) 3.粘贴到指定位置 2.将外部内容粘贴到cmd窗口中的操作步骤 1.ctrl+C复制目标内容 2.在cmd窗口中鼠标右键-点击粘贴按钮即可 原文地址:https://www.cnblogs.com/zhuwenqin/p/11061993.html

java学习总结(16.05.08)在windows下使用cmd命令行对java文件进行编译和执行

windows下利用cmd命令行可以调用jdk里的javac.exe和java.exe对java文件进行编译和执行,前提是jdk已成功安装并正确配置相关环境变量(jdk安装与环境变量的配置方法:http://blog.csdn.net/qq_32099621/article/details/51339868) 下面来说一下windows下如何使用cmd命令行来编译执行java文件 首先找到需要编译和执行的java文件 这里我要编译和执行这个java文件 按组合键win+r调出"运行",

javac java 命令行编译运行程序

参考自:http://blog.csdn.net/xxyyww/article/details/5784803 前言: 在命令行运行JAVA的时候,要做的事情就不是点一下鼠标就可以了.如果再用到第三方JAR包,命令就更长了.一个比较好的方法就是使用ant,不过我发现一个问题,在命令行中使用ant的时候,它的输入和eclipse的console一样蛋疼.比如: Scanner in = new Scanner(System.in); System.out.println("请输入一个整数:&quo

ZT : JAVA和JAVAC 命令行;java 带有包名编译并运行,附带外部依赖jar包运行

ZT: https://blog.csdn.net/just3do/article/details/68957618 有时候写个小测试,不想开idea,就用cmder,但是老忘记怎么编译,就copy别人的一份博客. javac和java命令行中的-classpath选项 这是个很基础的问题,但是因为基本上都是用现有的IDE工具 来开发java程序,所以很少有人意识到这一点.javac-classpath,设定要搜索类的路径,可以是目录,jar文件,zip文件(里面都是class文件),会覆盖掉所

[java基础学习笔记]Java8SE开发环境搭建、第一个Java Hello World、Java程序的编译与执行

本文作者:sushengmiyan 本文地址:http://blog.csdn.net/sushengmiyan/article/details/25745945 主要内容: ---------------------------------------------------| 1.JDK的下载与安装                            | 2.编写第一个java程序HelloWorld     | 3.编译执行HelloWorld                      

Java 命令行编译项目

(初学者的一些总结-高手们勿喷哈-) 原因: 以前一直用Eclispe编程环境运行Java.非常舒服,就像用傻瓜相机照相一般. 有看见许多高手都是直接用vim编辑文件,命令行编译运行,觉得那样不是反而更繁琐? 转折点是在前几天本科毕设题目选定之后.毕设题是一个基于java 字节码的类关系动态分析.需要对.class文件中字节码进行更改(具体的说是在许多指令后加入做标记的新指令,以实现动态跟踪的目的). 我发现,eclipse根本无法如此灵活,他无法直接装载运行一个我修改过的.class文件.它是

javac 及 java命令的使用问题(错误或无法加载主类)

一.问题 使用 javac 命令编译完.java源文件后,用 java 命令运行.class文件时,通常会遇到如下或类似的问题: 错误: 找不到或无法加载主类 HelloWorld.class 二.解决 javac命令用来编译.java源文件.没有-d选项时直接在.java源文件同级目录下生产.class文件:有加-d时会在指定路径生成.class文件且文件在与包语句对应的目录下. 当指定 -d path 选项时,会在path下生成 与.java文件里的包声明结构 相同的.class文件.如,若

【Java学习】javac和java命令

对于不在包中的Java类 例如;C:\Users\guoyan\Desktop目录下的 MyWindow.java ①首先切到当前目录下 c: cd C:\Users\guoyan\Desktop ②执行 javac MyWindow.java编译 ③再执行java MyWindow运行 对于在包中的Java类 例如:C:\Users\guoyan\Desktop\Test目录下的Hello.java,在test包中 ①首先切到当前目录下 c: cd C:\Users\guoyan\Deskto

Javac和java命令执行java程序

javac [ options ] [ sourcefiles ] [ @files ]:编译一个java文件. 1. 注意到执行命令必须要指定到包含java文件的路径,否则会出现找不到file错误. 2. 如果没有安装JVM的话,javac命令也会不识别的. 简单的程序实例: 一个源文件 Hello.java ,它定义了一个名叫 greetings.Hello 的类.greetings 目录是源文件和类文件两者的包目录,且它不是当前目录.这让我们可以使用缺省的用户类路径.它也使我们没必要用 -