读完这篇博客。你将对下面几点更有心得:

- Java 中的当前路径、类路径等概念

- javac、java 命令的综合使用

- jar 包的创建及引用

创建文件夹,准备測试源代码

  • 创建例如以下文件夹



    当中,bin 文件夹用于存放 Class 字节码文件。jar 文件夹用于存放我们自己打包的 jar 文件,src 下是项目源代码。
  • 编写測试源文件

    分别编写 Vehicle.java、Person.java、MainClass.java,内容例如以下:
package com.george.jvm.test;
public class Vehicle{
private String name;
private Double cost; // getters setters
public void setName(String name){this.name = name;}
public String getName(){return name;} public void setCost(Double cost){this.cost = cost;}
public Double getCost(){return cost;}
}
import com.george.jvm.test.Vehicle;
public class Person{
private Integer id;
private String name;
private Integer age;
private Vehicle v; // getters setters
public Integer getId(){return id;}
public void setId(Integer id){this.id = id;} public String getName(){return name;}
public void setName(String name){this.name = name;} public Integer getAge(){return age;}
public void setAge(Integer age){this.age = age;} public Vehicle getVehicle(){return v;}
public void setVehicle(Vehicle v){this.v = v;} // method
public void eat(){
System.out.println("Hi! My name is "+ name +" and I am " + age +" years old!");
} public void drive(){
System.out.println("Look! I am driving " + v.getName() + " now!");
} }
import com.george.jvm.test.Vehicle;
public class MainClass{
public static void main(String args[]){
Vehicle v = new Vehicle();
v.setName("Benz");
v.setCost(1000000.00);
Person p = new Person();
p.setId(1);
p.setName("张三");
p.setAge(20);
p.setVehicle(v);
p.eat();
p.drive();
}
}

打包外部依赖 Jar 文件

  • 编译外部依赖源代码,输出到 bin 文件夹

    ① -classpath 选项能够指定输入源文件文件夹

    ② -d 能够指定输出字节码文件夹

    ③ 多个输入源文件能够使用通配符或用空格分隔

    运行命令后,会发如今 bin 文件夹下会生成一个带包名的 Vehicle.class 字节码文件:

  • 打包外部依赖字节码,输出到 jar 文件夹

    ① jar 打包命令中。參数 c(create) 表示创建归档文件,v(view) 表示显示创建过程中的具体信息。f(file) 指定归档文件名称

    ② 注意打包要带上包名

    ③ 多个 jar 包可使用空格分隔。

    详解可使用 jar 命令

    打包结果例如以下:

编译、运行測试 Java 源文件

  • 编译 Person.java、MainClass.java,并输出到 bin 文件夹

    ① -cp 选项同 -classpath

    编译结果例如以下:

  • 运行 MainClass

    ①注意 java-classpath ..\jar\Vehicle.jar; MainClass中,.jar 后的 “;” ,且”;”后还要跟” “[空格]

    ② 例如以下命令也是可行的:

上面的測试在笔者环境下通过,如有不妥之处。请不吝赐教,留言。

最后给出相关优秀博客出处:

  1. javac、java 命令參数详解
  2. 命令行运行 Java 程序
  3. JAVA和JAVAC 命令行

Hello World (记事本+命令行)的更多相关文章

  1. C#的命令行工具

    ​在最开始学java的时候我们一般用 记事本 + 命令行,在命令行里边进行编译和运行, C#也有类似的东西(csc工具),在学习C#语言的时候可以用 文本编辑器来编写代码,然后用C#的命令行工具来编译 ...

  2. ASP.NET Core:CMD命令行+记事本 创建Console程序和Web Application

    今天看了Scott关于ASP.NET Core的介绍视频,发现用命令行一步一步新建项目.添加Package.Restore.Build.Run 执行的实现方式,更让容易让我们了解.NET Core的运 ...

  3. 干掉命令行窗口下MySql乱码

    晚上重温dos窗口操作mysql的时候,遇到了一个巨蛋疼的问题------>中文验证码  -->_-->,所以找了找资料弄懂了怎么解决乱码问题,,小记一下. 新建一个表 create ...

  4. Git命令行(转用于学习和记录)

    Git命令行介绍和使用说明(持续更新) 参见:<Git 中文简体教程> 一. 命令“git”或者“git help”查询常用命令 [add]: “git add”——不但是用来添加不在版本 ...

  5. Mac系统终端命令行不执行命令 总出现command not found解决方法

    配置过安卓开发环境,改过bash_profile这个文件,最后不知怎么的只有cd命令能执行,我猜测可能修改bash_profile文件后没有保存 导致的     保存命令是:  source .bas ...

  6. 怎样用命令行编译C#程序

    1. 把程序拷贝至记事本 2.另存为*cs格式 3.找到VS2015提供的命令提示 4.要把命令行指向程序所在的目录(可以有个小软件) 如果在其他的盘符,先敲D:,然后再cd 5.输入csc hell ...

  7. SMTP协议--在cmd下利用bat命令行发送邮件

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议 选择‘开始’-‘运行’,输入cmd,进入命令提示符窗口. Windows7默认没有开始Telnet服务,请在运 ...

  8. VS2015——命令行下编译、静态库动态库制作以及断点调试

    c程序编译流程 程序的基本流程如图: 1. 预处理 预处理相当于根据预处理指令组装新的C/C++程序.经过预处理,会产生一个没有宏定义,没有条件编译指令,没有特殊符号的输出文件,这个文件的含义同原本的 ...

  9. 命令行启动win7系统操作部分功能

    control.exe /name microsoft.folderoptions 启动资源管理器的 文件夹属性 选项卡 control.exe /name Microsoft.AddHardware ...

随机推荐

  1. Linux下PHP开启Oracle支持(oci8)

    使用php的常见问题是:编译php时忘记加入某扩展,后来想加入扩展,可是由于安装php后又装了一些东西如PEAR等,不想删除文件夹重装,那么此时就须要自己又一次添加某模块支持了,Linux操作系统下能 ...

  2. 手机验证 发送验证码倒计时js

    html: <input name="Tel" class="weui-input" type="tel" placeholder=& ...

  3. AngularJs轻松入门(一)创建第一个应用

    AngularJs是Google工程师研发的一款JS框架,官方文档中对它的描述是,它是完全使用JavaScript编写的客户端技术,同其他历史悠久的Web技术(HTML,CSS等)配合使用,使得Web ...

  4. 《剑指offer》栈的压入、弹出序列

    一.题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压 ...

  5. appium使用教程(三)-------------用例编写

    1. 驱动 import os, time, unittest from appium import webdriver PATH = lambda p:os.path.abspath(os.path ...

  6. iOS——集成支付宝 系统繁忙,请稍后再试ALI10

    问题描述:调用支付宝时,显示系统繁忙,请稍后再试(ALI10).代码没有报错,其他也是按照文档来的,为何老是提示显示系统繁忙? 解决方案:还需要在targets的中info里面,添加  url typ ...

  7. Spring MVC框架一个实例的手动实现

    文件结构: SpringMVC05 // 应用程序名 ----index.html // 欢迎文件,主目录下的文件可以被URL直接访问到 ----WEB-INF // 这个目录下的文件将被保护起来不能 ...

  8. 据统计WIN10用户已经比WIN7多

    数据统计机构Netmarketshare今天发布了2018年12月份最新的桌面操作系统份额报告.在看似无休止的等待之后,微软在2018年取得了最后的胜利,不仅成为市值最高的公司,而且最新的Window ...

  9. CMSIS-RTOS 信号量

    信号量Semaphores 和信号类似,信号量也是一种同步多个线程的方式,简单来讲,信号量就是装有一些令牌的容器.当一个线程在执行过程中,就可能遇到一个系统调用来获取信号量令牌,如果这个信号量包含多个 ...

  10. HDU 4309 Seikimatsu Occult Tonneru

    Seikimatsu Occult Tonneru Time Limit: 6000ms Memory Limit: 32768KB This problem will be judged on HD ...