[Debug]Windows下命令行编译java程序,文件组织/问题/解决

原创 2015年07月11日 00:18:58
   问题描述:想了解下java程序的具体的编辑到运行的过程,于是花了点时间写了个简单的HelloWorld测试了下,Win7的OS,非linux下。内容包括手动建立工程文件的目录,用notepad编辑一个HelloWorld类源程序,使用javac将源程序转为字节码格式的.class文件,最后使用java执行程序输出"HelloWorld!"。
   该过程中出现的问题就是用java执行时出现了
“Exception in thread "main"java.lang.NoClassDefFoundError:”的错误。对该问题进行了测试并做了解决。
   工程文件的建立:参考了Android源代码工程文件的组织,建立的工程文件目录如下:
FileComposePrj
|--libs
|--res
|--src
  |--com
     |--ethan
       |--compose_test
          |--HelloWorld.java
|--bin
  |--res
  |--classes
   这个工程名字取做“FileComposePrj”,libs用于放置.jar文件(相当于库文件),res文件夹放置图片,.xml文档等资源文件,src文件夹下放置源代码,都是.java文件,最后bin文件夹里放javac过后的.class文件。这个组织结构是参考的Android工程的。
   然后在src文件夹下根据自己的需要陆续新建了一列文件夹,最后是.java源代码文件,
packagecom.ethan.compose_test;

//一个public类,含有main方法,打印HelloWorld!
public class HelloWorld {
   public static void main(String[] args) {
       System.out.println("HelloWorld!");
   }
}
  编译程序:应该是叫做解释吧,将.java文件解释成字节码.class文件,使用javac命令:
从cmd中用cd命令切换到FileComposePrj目录下,然后
javac -d bin\classessrc\com\ethan\compose_test\HelloWorld.java

    在bin\classes下会根据packagecom.ethan.compose_test;自动创建对应的文件夹和.class文件:

    执行程序:使用
javabin\classes\com\ethan\compose_test\HelloWorld
    结果出现问题了

   然后查找了一些资料,有说环境变量配置不正确的,也有说代码写错的,这里的问题就是HelloWorld类找不到,于是比较了下自己的程序,因为第一行有个package,因此在使用javac的时候也是自动根据这个包路径来创建类的路径的,bin下到classes文件夹是自己建的,但是com\ethan\compose_test都是自动创建的,于是想着是不是这样出来的class文件不能直接用\来找到呢,于是先
cd bin\classes
切换到classes目录下,然后再
javacom.ethan.compose_test.HelloWorld
就能正确执行了。
[Java]Windows下命令行编译java程序,文件组织/问题/解决
   问题回顾:这次出现的问题就是在源.java文件中使用了包路径packagecom.ethan.compose_test;然后在使用javac的时候会自动创建这个包的路径包含的文件夹的,再然后使用java的时候,就不能直接用com\ethan\compose_test\HelloWorld来找到这个class文件,而是要与包路径的格式一致才行(使用com.ethan.compose_test.HelloWorld)。
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Windows命令行编译C++程序

/* 本文转自http://blog.csdn.net/hulin0229/article/details/22340397

java 命令行 编译 执行程序

学习java使用IDE前最好先用用命令行的javac、java来跑一跑简单的程序,这样可以熟悉一下包管理对.class文件路径的影响。 我们先写一段简单的代码: package com.csdn.l...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

java windows cmd 下编译运行问题

问题一:在 cmd 输入 javac 时报错,说 javac 不是内部和外部命令 解   决:环境变量配置错了,如下配置环境变量 JAVA_HOME  =   C:\Program Fil...

命令行下编译简单程序

命令行下编译简单console程序:(VC8为例:)            CL.exe 是控制Microsoft C 和C++ 编译器与链接器的32 位工具。编译器产生通用对象文件格式(COFF)...

windows命令行下编译、运行c程序

在windows操作系统中,运行一个c程序,首先必须安装一个c语言编译器,如Visual C++ 6.0,然后建立这个源程序,并以“.c”作为文件的扩展名,例如在D盘theC文件夹下(D:\theC)...

Windows XP 下使用命令行编译、运行 QT4 程序

http://hi.baidu.com/2young22/blog/item/a1f4b7f5c03c97d5f3d3859d.html   Windows XP 下使用命令行编译、运行 QT4 ...

windows下利用命令行编译运行程序

这里主要介绍gcc编译运行C++程序。

用命令行编译java文件

用惯了IDE,突然发现对于java和javac命令只会基础的单文件编译运行,因此特地研究了一下多文件依赖编译运行。(顺便一提,stackoverflow真是个好地方) 单文件编译 带包名的java类编...

Java命令行编译源程序

在命令行下,当源文件中含有package时,编译运行有问题了(前提是环境变量没问题),大概的问题如下: 1.  运行编译、执行             javac ThreadTest.java ...

java程序用命令行编译

原创全是自己走多了弯路,告诫大家别这样,共勉!
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)