javac 理解
来源:互联网 发布:淘宝众筹如何推广 编辑:程序博客网 时间:2024/04/28 13:23
用贯了IDE,连java中最基本的命令都稀里糊涂,现在,一切从头开始,日积月累地进行学习。今天研究一下javac编译命令。
一、包名惹得祸。
无意中写了个简单的java文件:Main.java
- package xplq;
- public class Main
- {
- public static void main(String[] args){
- System.out.println("xplq");
- }
- }
按照习惯,开始编译:
- javac Main.java
ok,编译出Main.class文件了。接着想看看结果,又来了一个命令java:
- java Main
本以为没有任何悬念,可是console打印出:
- D:/>javac Main.java
- D:/>java Main
- Exception in thread "main" java.lang.NoClassDefFoundError: Main (wrong name: xpl
- q/Main)
- at java.lang.ClassLoader.defineClass1(Native Method)
- at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
- at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
- 4)
- at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
- at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
- at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
- at java.security.AccessController.doPrivileged(Native Method)
- at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
- at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
- at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
- at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
- at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
- D:/>
没有包名,自己建立一个文件夹叫xplq,把Main.class,拖入xplq文件夹中。测试:
- java xplq.Main
居然ok了,呵呵。
二、探寻问题根源——javac的理解。
有没有什么办法不是手动的建立文件夹呢?如果包名为N层,那还不累死?于是左思右想,发现问题的根源在于对javac的应用和理解上。
运用命令:dest和src为文件夹
- javac dest/Main.java -d src
打开src,可以看到包名已经自动建立,按以下输入:
- D:/>cd src
- D:/src>java xplq.Main
- xplq
- D:/src>
呵呵,看样子还是基础薄弱啊!继续学习。。。。
突然发现,有篇好的文章:http://softbbs.pconline.com.cn/6159733.html,有空研究
- javac 理解
- 深入理解Javac编译器
- javac和java指令理解
- Javac源代码阅读理解(未完待续)
- javac
- javac
- javac
- javac
- javac
- javac
- 深入理解 Java 虚拟机-javac 编译与 JIT 编译
- 编译器-Javac
- 编译 javac
- javac 使用
- about javac
- javac usage
- javac使用
- javac命令
- 基于OMAP1510双核架构的移动多媒体通信终端的设计与实现
- 2010年的奥运
- linux使用vi中文乱码的解决办法
- 在panle动态添加自定义控件,出错了,高手请指点
- .NET的页面的生命周期
- javac 理解
- UNiSONSHIFT・ACCENT经典作品推荐 Chu×Chuアイドる和Chu×Chuぱらだいす~Encore Live~介绍(含下载和攻略)
- 代码中使用oracle数据库修改为DB2数据库的一些修改点
- 我总觉得是习近平救了刘翔
- Handling an AjaxCall
- More effective C++ 今日一贴 之C++类型转换[1]
- C#与EXCEL的数据交互
- 记事本程序
- CENTOS