手动编译java的package问题,及演示继承的基本实现

不用IDE,而直接用命令编译JAVA包,仔细看了下,作一个记录。

以下的URL值得收藏。

http://www.aiuxian.com/article/p-2115485.html

http://www.cnblogs.com/haolujun/archive/2013/03/02/2939698.html

http://blog.sina.com.cn/s/blog_533074eb01014yd7.html

主要要理解classpath参数,d参数,及.作路径导向。

演示继承的四个文件如下:

Role.java

package cc.openhome;

public class Role {
  private String name;
  private int level;
  private int blood;

  public int getBlood() {
    return blood;
  }

  public void setBlood(int blood) {
    this.blood = blood;
  }

  public int getLevel() {
    return level;
  }

  public void setLevel(int level) {
    this.level = level;
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }
}

SwordsMan.java

package cc.openhome;

public class SwordsMan extends Role {
  public void fight() {
    System.out.println("Attack with swords");
  }
}

Magician.java

package cc.openhome;

public class Magician extends Role {
  public void fight() {
    System.out.println("Attack with magician");
  }
}

RPG.java

package cc.openhome;

public class RPG {
  public static void main(String[] args) {
    SwordsMan swordsMan = new SwordsMan();
    swordsMan.setName("Justin");
    swordsMan.setLevel(1);
    swordsMan.setBlood(200);
    System.out.printf("SwordsMan: (%s, %d, %d)%n", swordsMan.getName(),
                swordsMan.getLevel(), swordsMan.getBlood());

    Magician magician = new Magician();
    magician.setName("Monica");
    magician.setLevel(2);
    magician.setBlood(100);
    System.out.printf("Magician: (%s, %d, %d)%n", magician.getName(),
                                magician.getLevel(), magician.getBlood());
  }
}

目录结构平铺如下:

手动编译命令及执行顺序如下:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

D:\learn>javac -cp . -d . Role.java

 

D:\learn>javac -cp . -d . SwordsMan.java

 

D:\learn>javac -cp . -d . Magician.java

 

D:\learn>javac -cp . -d . Role.java

 

D:\learn>javac -cp . -d . RPG.java

 

D:\learn>java -cp . cc.openhome.RPG

SwordsMan: (Justin, 1, 200)

Magician: (Monica, 2, 100)

  

时间: 2024-11-01 05:34:43

手动编译java的package问题,及演示继承的基本实现的相关文章

使用maven编译Java项目

综述 本文演示了用Maven编译Java项目 需要 时间:15分钟 文本编辑器或者IDE JDK 6 或者更高版本 创建项目 本例主要为了展示Maven,所以Java的项目力求简单. 创建项目结构 选择一个项目目录,在 *nix系统上使用下面语句 mkdir -p src/main/java/hello window下使用命令 mkdir src\main\java\hello 创建如下结构: └── src └── main └── java └── hello 在src/main/java/

class-cmd编译java程序时的一个问题

问题描述 cmd编译java程序时的一个问题 使用javac编译一个java程序时,如果该java文件导入了其他的类,只能将导入的类一个一个手动编译吗?有没有什么其他便捷的方法? 解决方案 Exception in thread "main" java.lang.NoClassDefFoundError: comexampleMain 问题一个解决思路......答案就在这里:编译java程序时的一个问题 解决方案二: 如果是测试的话你也可以把其他类嵌套到一个类测试,这样就可以监测其功

Java的Package与Import机制之我的理解(初学者的心得)

初学|心得    以下内容的测试条件是你的机器上,设置了path命令PATH= D:\JDK1.4\BIN;D:\JDK1.4\LIB;,可以正常执行java和javac命令,不用设置classpath路径的情况下.       从一个简单的例子谈谈package与import机制 基本原则:为什么需要将Java文件和类文件切实安置到其所归属之Package所对应的相对路径下. 为什么要这样做呢?如果你在程序中,用到打包命令package,并且直接编译和执行该程序.例如:以下面程序为例: pac

MYSQL5.5手动编译安装过程

MYSQL5.5的手动编译安装 安装方式分为rpm和源码编译安装两种,本文是采用mysql源码编译方式,编译器使用Cmake.软件需要mysql-5.5.40.tar.gz和cmake-2.8.10.2.tar.gz,请自行下载. 下载地址: http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.40.tar.gz http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz 其中mysql使用

ubuntu-关于用mvn编译java程序的问题

问题描述 关于用mvn编译java程序的问题 INFO:hackathon.launcher:execute script: mvn -T 2C clean package -Dmaven.test.skip=true -f ./draenor/pom.xml [INFO] Scanning for projects... [INFO] Building with 4 threads [INFO] [INFO] ------------------------------------------

dos 编译java 自己创建的类找不到?怎么解?

问题描述 dos 编译java 自己创建的类找不到?怎么解? 路径:com.test:一类:package com.web; class Function{ public int add(int aint b){ return a+b; }}二类:package com.web;import com.web.Function;class Fun{ public int reduce(int aint b){ Function f = new Function(); return f.add(ab

用命令行编译java并生成可执行的jar包

用命令行编译java并生成可执行的jar包 1.编写源代码. 编写源文件:CardLayoutDemo.java并保存,例如:I:\myApp\CardLayoutDemo.java.程序结构如下: package test; import java.awt.*; import javax.swing.*; //更多包的导入... class NotePadFrame extends JFrame { //主界面的设计... } //其他相关代码... public class CardLayo

用 eclipse 编译java代码运行为灰色(none applicable)

问题描述 用 eclipse 编译java代码运行为灰色(none applicable) package qq; public class sort_Demo { int i,j,k,swap; sort_Demo(){ i=j=k=swap=0; } void sort(int t1,int t2[]){ for(i=0;i k=i; for(j=i+=1;j if(t2[j] k=j; if(k!=i){ swap=t2[i]; t2[i]=t2[k]; t2[k]=swap; } } }

linux中ubuntu下手动编译php-amqp扩展详细教程

PHP官网的amqp模块介绍在此,我也不多介绍.下面进入重点的安装环节. http://www.php.net/manual/en/book.amqp.php 用于ubuntu的默认源里面没有php5-amqp这个包,所以要用上amqp得考手动编译. 准备工作: # 安装php编译工具 sudo apt-get install php5-dev # 安装rabbitmq的库 sudo apt-get install librabbitmq-dev 然后如果你没有安装git话请安装一下git,因为