首先Dos中 编译java文件是:javac (所有)类名.java 运行java文件是:java 包名.类名

java指令默认在寻找class文件的地址是通过CLASSPATH环境变量中指定的目录中寻找的。

java执行class文件是根据CLASSPATH指定的地方来找。如果希望它查询当前目录,需要在CLASSPATH中加入“.;”,

代表当前目录。若classpath中没有此class文件的路径就不能执行(比如将class文件随意移动后)就不能执行。

java执行class文件对package的路径是强依赖的。它在执行的时候会严格以当前用户路径为基础,

再按照package指定的包路径转化为文件路径去搜索class文件。

若移动了java文件(class文件),则可以到Classpath中暂时新建一个路径(文件所放位置),再到Dos中编译执行

第一种编译方法( 编译直接生成class 文件,执行需先创建包的路径)

同一个包里有多个java文件,比如pim包里有 Date.java PIMAppointment.java  PIMContact.java

PIMEntity.java  PIMNote.java   PIMTodo.java 这7个java文件

  1. 且PIMManager.java 调用了其他6个java文件中的类,则在DOS窗口编译时必须同时编译用到的所有类所属的java文件,
  2. 编译完成后要运行java程序:<span style="color:#ff0000;">切记Dos中为 java 包名.类名     只用到第一个执行程序的类名
  3. 当有包路径时(本例为pim)因此,我们需要返回到包名的上一个目录中Hw2中来执行 java pim.PIMManaget
  4. 当没有包路径时,我们在pim包里创建一个文件夹,命名为(路径名,若有多层路径则要创建多个文件夹)pim再将生成的class文件移进去,
  5. 则我们在Hw2\pim目录下就有7个java文件和一个文件夹(叫做pim),文件夹中有class文件,那么我们就可以在
  6.  执行 java pim.PIMManager

  7. 即从用户路径+包路径去查找class文件

  1. 第二种编译方法( 编译直接生成包的路径)
  2. 假设当前目录为/src/java/ ,则编译命令为:
  3. javac -d . HelloWorld.java
  4. 说明:"." 为指定编译路径为当前目录;生成的HelloWorld.class 所有目录为/src/java/a/b/HelloWorld.class 。
  5. javac -d c/d HelloWorld.java
  6. 说明:c/d 为指定编译路径为/src/java/c/d ,同样也可以写成绝对路径如javac -d d:/ HelloWorld.java ,
    1. 前提是路径必须先存在;生成的HelloWorld.class 所有目录为/src/java/c/d/a/b /HelloWorld.class 。
    2. 假设当前目录为/src/ ,则编译命令为:
    3. javac -d . java/HelloWorld.java
    4. 说明:生成的HelloWorld.class 所有目录为/src/a/b/HelloWorld.class 。
    5. javac -d java/c/d java/HelloWorld.java
    6. 说明:生成的HelloWorld.class 所有目录为/src/java/a/b/HelloWorld.class 。
    7. 第三种编译方法(先把源文件按照包结构放到指定的目录中,然后执行编译命令)
    8. 假设当前目录为/src/java/,先在目录中创建目录/a/b,然后编译命令:
    9. javac a/b/HelloWorld.java
    10. 下面总结一下对于带包的类进行编译和执行时的一些要点:
    11. 1、编译时可以不考虑包结构的问题,不论用哪种方法,其实本质都是一样的,只需要让javac命令找到所需要编译的原文件(*.java)即可。

在dos中编译java文件的更多相关文章

  1. Maven 手动添加第三方依赖包及编译打包和java命令行编译JAVA文件并使用jar命令打包

    一,实例:新建了一个Maven项目,在eclipse中通过 build path –> configure path-.将依赖包添加到工程中后,eclipse不报错了.但是用Maven命令 mv ...

  2. 在dos中运行java程序,若出现Exception in thread “main" java.lang.NoClassDefFoundError

    在dos中运行java程序,若出现Exception in thread “main" java.lang.NoClassDefFoundError,可以检查一下几项: 环境变量配置: 注意 ...

  3. Eclipse不自动编译java文件的终极解决方案

    最近我的eclipse经常犯傻,项目中总是有很多,启动项目也是没有启动类.查了下项目中生成的class文件,我靠竟然没有,或者还是以前的.原来是eclipse犯傻了,它没帮我自动编译java文件.一般 ...

  4. Eclipse不能自动编译 java文件的解决方案

    前段时间出现了eclipse 不自动编译java文件的问题,在网上找了好长时间,总算把问题解决了,现在把这个问题的解决方法总结一下. 1,看看project -- Build Automaticall ...

  5. 在ant编译java文件时产生debug信息

    使用ant编译java文件时,如果没有设置debug属性,则不会产生编译信息,ant的默认设置是不打印编译信息. 如果想在编译过程中显示编译信息,需设置debug属性为true,并且设置debugLe ...

  6. 如何手动编译java文件

    1,在编辑框中,将目录切至java文件所在的地址 如图 2,开始编译java文件 用命令javac 编译目标java文件,文件需带后缀名 ; 用java 执行class, 此时class文件无需带后缀 ...

  7. java_基础——用代码编译.java文件+加载class文件

    [本文介绍] 本文不是深入理解和使用java编译器,只是在代码里编译.java文件的helloWorld.这种技术还是蛮有意思的,说不定在将来的某些只能化项目会运用到!^_^ [简单编译的流程] [j ...

  8. 在用mvn编译java文件时遇到问题

    问题一:找不到加载主类 为什么会出现这类加载失败的问题那??? 一看这个问题就是环境变量配置有问题,找到问题解决就ok了!!! 问题二:无法用mvn编译java文件 这个问题是由于pom.xml文件出 ...

  9. 30天轻松学习javaweb_通过javac编译java文件

    通过javac编译java文件1.先导入需要引用的包D:\Program Files (x86)\apache-tomcat-7.0.53\webapps\test\WEB-INF\classes&g ...

随机推荐

  1. Linux启动详细过程(开机启动顺序)

    启动第一步--加载BIOS当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息.设备启动顺序信息.硬盘 ...

  2. dubbo远程服务调用和maven依赖的区别

    dubbo:跨系统通信.比如:两个系统,一个系统A作客户端,一个系统B作服务器, 服务器B把自己的接口定义提供给客户端A,客户端A将接口定义在spring中的bean.客户端A可直接使用这个bean, ...

  3. 【计算机网络】两个网络模型——OSI参考模型和TCP/IP模型

    计算机网络 两个网络模型 计算机网络模型 分层机制----规划通讯细节 层与层之间之间是独立的.屏蔽的,下层为上层提供服务. 一些概念 实体: 任何发送/接收信息的软件/硬件进程. 对等层: 两个不同 ...

  4. VS2013编译程序出现error C4996: 'std::_Fill_n': Function call with parameters that may be unsafe

    最近按照BiliBil网站Visual C++网络项目实战视频教程,使用VS2013编写一个基于MFC的对话框程序HttpSourceViewer,采用了WinHttp库.Boost xpressiv ...

  5. __attribute__ ((packed))字节对齐

    1. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法.这个功能是跟操作系统没关系,跟编译器有关,g ...

  6. C++中采用操作符重载完善复数类

    1,复数类应该具有的操作: 1,运算:+,-,*,/: 2,比较:==,!=: 3,赋值:=: 4,求模:modulus: (5),完善的复数类操作符重载必不可少: 2,利用操作符重载: 1,统一复数 ...

  7. C#break和continue学习

    一,代码 static void Main(string[] args) { ; while (true) { int num = Convert.ToInt32(Console.ReadLine() ...

  8. net core微服务构建方案

    随着Net core升级,基本趋于完善了,很多都可以使用core开发了.已经有的Net framework就不说了,说实话,关注少了. 今天说说微服务方案,在之前说几句废话,core还在升级改造,AP ...

  9. 2018-8-10-上传代码-CodePlex

    title author date CreateTime categories 上传代码 CodePlex lindexi 2018-08-10 19:16:51 +0800 2018-2-13 17 ...

  10. Docker配置阿里云镜像加速pull

    前言:默认Docker拉取镜像是从Docker Hub上拉取,但由于防火墙的原因,导致镜像下载非常慢.为了提高拉取镜像的速度,可以配置阿里镜像或是网易镜像加速,通过使用经验推荐配置阿里镜像. 申请个人 ...