Linux下编译Java代码---javac和java命令的使用
2017-02-08 20:51
513 查看
一、编译单独一个java程序
Hello.java
xl@ubuntu:~/java$ javac Hello.java //在当前目录下产生Hello.class文件
xl@ubuntu:~/java$ ls
Hello.class Hello.java
xl@ubuntu:~/java$ java Hello // 执行Hello.class
Hello World!
二、编译一个带包的java程序
Hello.java
xl@ubuntu:~/java$ javac Hello.java // 在当前目录下产生Hello.class文件
xl@ubuntu:~/java$ ls
Hello.class Hello.java
xl@ubuntu:~/java$ java Hello // 在执行的时候显示找不到Hello这个类,原因是因为程序中包含包hello.world,执行类的时候回去按照这个包的路径来找。因此我们用下面的命令来执行。
Error: Could not find or load main class Hello
xl@ubuntu:~/java$ javac -d . Hello.java // 参数-d 指定生成class文件的位置
xl@ubuntu:~/java$ ls // 此时我们看到在当前目录下生成了一个目录hello/world/
hello Hello.java
xl@ubuntu:~/java$ tree hello/
hello/
└── world
└── Hello.class
1 directory, 1 file
xl@ubuntu:~/java$ java hello.world.Hello // 执行类的时候需要带上路径
Hello World!
三、同一个包下,一个类调用另一个类
Lance.java
package hello.world;
public class Lance{
public String getName(){
return "my name is lance";
}
}Introduce.java
package hello.world;
import hello.world.Lance;
public class Introduce{
public static void main(String args[]){
Lance name = new Lance();
System.out.println("hello world! " + name.getName());
}
}
xl@ubuntu:~/java$ javac -d . Lance.java // 参数-d . 表示在当前目录下产生hello/world/目录。并且生成Lance.class
xl@ubuntu:~/java$ javac -cp . -d . Introduce.java // 参数-cp . 表示按照hello.world.Lance的路径寻找类,并且编译Introduce.java。此时在当前目录下产生hello/world/目录,并且生成Introduce.class
xl@ubuntu:~/java$ tree hello/
hello/
└── world
├── Introduce.class
└── Lance.class
1 directory, 2 files
xl@ubuntu:~/java$ java hello.world.Introduce
hello world! my name is lance
四、一个包下的类调用另一个包下的类
Lance.java
xl@ubuntu:~/java$ javac -d . Lance.java // 参数-d . 表示在当前目录下产生hello/world01/目录。并且生成Lance.class
xl@ubuntu:~/java$ javac -cp . -d . Introduce.java // 参数-cp . 表示按照hello.world01.Lance的路径寻找类,并且编译Introduce.java。此时在当前目录下产生hello/world02/目录,并且生成Introduce.class
xl@ubuntu:~/java$ tree hello/
hello/
├── world01
│ └── Lance.class
└── world02
└── Introduce.class
2 directories, 2 files
xl@ubuntu:~/java$ java hello.world02.Introduce // 执行Introduce类的时候需要指定路径
hello world! my name is lance
参考
http://blog.csdn.net/wen294299195/article/details/39964971
Hello.java
public class Hello{ public static void main(String args[]){ System.out.println("Hello World!"); } }
xl@ubuntu:~/java$ javac Hello.java //在当前目录下产生Hello.class文件
xl@ubuntu:~/java$ ls
Hello.class Hello.java
xl@ubuntu:~/java$ java Hello // 执行Hello.class
Hello World!
二、编译一个带包的java程序
Hello.java
package hello.world; public class Hello{ public static void main(String args[]){ System.out.println("Hello World!"); } }
xl@ubuntu:~/java$ javac Hello.java // 在当前目录下产生Hello.class文件
xl@ubuntu:~/java$ ls
Hello.class Hello.java
xl@ubuntu:~/java$ java Hello // 在执行的时候显示找不到Hello这个类,原因是因为程序中包含包hello.world,执行类的时候回去按照这个包的路径来找。因此我们用下面的命令来执行。
Error: Could not find or load main class Hello
xl@ubuntu:~/java$ javac -d . Hello.java // 参数-d 指定生成class文件的位置
xl@ubuntu:~/java$ ls // 此时我们看到在当前目录下生成了一个目录hello/world/
hello Hello.java
xl@ubuntu:~/java$ tree hello/
hello/
└── world
└── Hello.class
1 directory, 1 file
xl@ubuntu:~/java$ java hello.world.Hello // 执行类的时候需要带上路径
Hello World!
三、同一个包下,一个类调用另一个类
Lance.java
package hello.world;
public class Lance{
public String getName(){
return "my name is lance";
}
}Introduce.java
package hello.world;
import hello.world.Lance;
public class Introduce{
public static void main(String args[]){
Lance name = new Lance();
System.out.println("hello world! " + name.getName());
}
}
xl@ubuntu:~/java$ javac -d . Lance.java // 参数-d . 表示在当前目录下产生hello/world/目录。并且生成Lance.class
xl@ubuntu:~/java$ javac -cp . -d . Introduce.java // 参数-cp . 表示按照hello.world.Lance的路径寻找类,并且编译Introduce.java。此时在当前目录下产生hello/world/目录,并且生成Introduce.class
xl@ubuntu:~/java$ tree hello/
hello/
└── world
├── Introduce.class
└── Lance.class
1 directory, 2 files
xl@ubuntu:~/java$ java hello.world.Introduce
hello world! my name is lance
四、一个包下的类调用另一个包下的类
Lance.java
package hello.world01; public class Lance{ public String getName(){ return "my name is lance"; } }Introduce.java
package hello.world02; import hello.world01.Lance; public class Introduce{ public static void main(String args[]){ Lance name = new Lance(); System.out.println("hello world! " + name.getName()); } }
xl@ubuntu:~/java$ javac -d . Lance.java // 参数-d . 表示在当前目录下产生hello/world01/目录。并且生成Lance.class
xl@ubuntu:~/java$ javac -cp . -d . Introduce.java // 参数-cp . 表示按照hello.world01.Lance的路径寻找类,并且编译Introduce.java。此时在当前目录下产生hello/world02/目录,并且生成Introduce.class
xl@ubuntu:~/java$ tree hello/
hello/
├── world01
│ └── Lance.class
└── world02
└── Introduce.class
2 directories, 2 files
xl@ubuntu:~/java$ java hello.world02.Introduce // 执行Introduce类的时候需要指定路径
hello world! my name is lance
参考
http://blog.csdn.net/wen294299195/article/details/39964971
相关文章推荐
- 命令行中java和javac、javap使用详解(java编译命令)
- 在CMD窗口中使用javac和java命令进行编译和执行带有包名的具有继承关系的类
- windows命令行中java和javac、javap使用详解(java编译命令)(转)
- vim代码风格、使用javac.exe和java.exe命令
- 编译json(练习javac、jar和java命令的使用)
- linux下使用javac java编译运行java工程
- 我使用过的Linux命令之swig - 把C/C++的代码嵌入Java等语言的开发工具
- windows命令行中java和javac、javap使用详解(java编译命令)
- Linux下使用GCC命令编译代码(1)
- windows命令行中java和javac、javap使用详解(java编译命令)
- 02_JNI中Java代码调用C代码,Android中使用log库打印日志,javah命令的使用,Android.mk文件的编写,交叉编译
- Linux下使用GCC命令编译代码
- linux下使用gcc命令编译代码
- 02_JNI中Java代码调用C代码,Android中使用log库打印日志,javah命令的使用,Android.mk文件的编写,交叉编译
- 使用javac和java命令编译和执行程序,学习隐藏在IDE背后的知识
- 我使用过的Linux命令之swig - 把C/C++的代码嵌入Java等语言的开发工具
- linux下使用gcc命令编译代码
- 使用javac命令编译java文件。
- 使用DOS命令行,用javac编译多目录下(包)的JAVA源程序
- 在命令提示符下编译、运行java 以及使用jar命令制作可执行的jar包