Java:javac编译java文件引入class文件和jar依赖

简介: Java:javac编译java文件引入class文件和jar依赖

两个测试所需文件

public class Hello{
    public void sayHello(){
        System.out.println("Hello");
    }
}
public class Demo{
    public static void main(String[] args) {
        Hello Hello = new Hello();
        Hello.sayHello();
    }
}

同目录下javac编译执行

$ ls
Demo.java
Hello.java
$ javac Demo.java
$ java Demo

引入不同目录依赖编译执行

$ ls
Demo.java
libs/
    Hello.java
$ javac -classpath ./libs Demo.java
$ java -classpath .:libs Demo

引入jar包

将Hello.java打成jar包

$ cd libs
$ javac Hello.java
$ jar -cvf hello.jar Hello.class

引入jar包执行

$ ls 
Demo.java
libs/
    hello.jar
$ javac -classpath ./libs/hello.jar  Demo.java
$ java -classpath .:./libs/hello.jar  Demo

优化

$ javac -encoding UTF-8 -classpath ./libs -d classes Demo.java
# 参数说明
-encoding UTF-8    定源文件使用的字符编码
-classpath ./libs  指定查找用户类文件和注释处理程序的位置
-d classes         指定放置生成的类文件的位置,必须存在
Demo.java          source files
$ cd classes 
$ java Demo
相关文章
|
3月前
|
JavaScript Java Android开发
在cmd中运行javac编译java文件报错: 编码GBK的不可映射字符、 非法字符: \65279
在cmd中运行javac编译java文件报错: 编码GBK的不可映射字符、 非法字符: \65279
54 1
|
3月前
|
Java 数据库 数据安全/隐私保护
Java操作Excel文件导入导出【内含有 jxl.jar 】
Java操作Excel文件导入导出【内含有 jxl.jar 】
55 0
|
21天前
|
API 开发工具 Android开发
Android Studio:解决AOSP自编译framework.jar引用不到的问题
在Android Studio中解决AOSP自编译framework.jar引用问题的几种方法,包括使用相对路径、绝对路径和通过`${project.rootDir}`动态获取路径的方法,以避免硬编码路径带来的配置问题。
32 0
Android Studio:解决AOSP自编译framework.jar引用不到的问题
|
1月前
|
前端开发 Java 编译器
classpath中存在多个jar存在同限定名的class classloader会如何加载
总之,合理组织类路径和使用现代化的构建工具,可有效避免类加载冲突,保证应用的稳定运行。
64 8
|
3月前
|
Java 编译器
Java健壮性 Java可移植性 JDK, JRE, JVM三者关系 Java的加载与执行原理 javac编译与JAVA_HOME环境变量介绍 Java中的注释与缩进 main方法的args参数
Java健壮性 Java可移植性 JDK, JRE, JVM三者关系 Java的加载与执行原理 javac编译与JAVA_HOME环境变量介绍 Java中的注释与缩进 main方法的args参数
40 1
|
3月前
|
Java Shell Nacos
centos7.x使用nacos2.1.0(解决JAVA_HOME、javac报错)
centos7.x使用nacos2.1.0(解决JAVA_HOME、javac报错)
174 1
|
3月前
|
XML 运维 Java
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
40 1
|
3月前
|
IDE 数据可视化 Java
Java基础6-Java文件和Java包结构和常用的jar包(二)
Java基础6-Java文件和Java包结构和常用的jar包(二)
40 0
|
3月前
|
Java Unix 编译器
Java基础6-Java文件和Java包结构和常用的jar包(一)
Java基础6-Java文件和Java包结构和常用的jar包(一)
63 0
|
设计模式 缓存 Java
Java新人常问:什么是依赖倒置原则?万字案例给你讲懂!(下)
Dependence Inversion Principle,DIP High level modules should not depend upon low level modules.Both should depend upon abstractions.高层模块不应该依赖低层模块,二者都应该依赖其抽象 Abstractions should not depend upon details.Details should depend upon abstractions.抽象不应该依赖细节;细节应该依赖抽象 针对接口编程,不要针对实现编程。
263 0
Java新人常问:什么是依赖倒置原则?万字案例给你讲懂!(下)