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
相关文章
|
10月前
|
存储 Java Maven
Maven系统级别依赖:解决部署时Jar包缺失问题
以上就是关于Maven系统级别依赖解决部署时Jar包缺失问题的解答,希望对你有所帮助。在软件开发中,遇到问题并解决问题是常态,希望你能够善用这些工具,解决你遇到的问题。
674 28
|
Java 中间件 测试技术
java依赖冲突解决问题之jar包版本冲突无法通过升降级解决时如何解决
java依赖冲突解决问题之jar包版本冲突无法通过升降级解决时如何解决
|
11月前
|
Java
课时103:生成jar文件
本文介绍了Java中生成和使用JAR文件的基本概念与操作。JAR文件用于将多个类文件打包成一个压缩文件,便于管理和分发。通过JDK提供的`jar`命令可以创建JAR文件,并可通过设置CLASSPATH环境变量来配置和使用这些文件。文中还演示了如何定义、编译和打包一个简单的Java程序为JAR文件,并详细解释了JAR文件的结构及配置方法。此外,简要提及了JDK 1.9后引入的模块化系统对JAR文件的影响。
310 1
|
Java 开发者
修改JAR文件工具
本文介绍了一款名为JarEditor的IDEA插件,该插件允许用户直接对JAR包内的文件进行增删改查操作,无需先行解压。通过简单的安装与使用步骤,大大简化了传统上需要解压缩、反编译、重新编译及打包的过程。此外,JarEditor还支持对混淆过的JAR文件进行字节码级别的修改,并提供了强大的搜索功能,支持大小写、全词匹配和正则表达式搜索。对于开发者而言,这款插件无疑极大提高了处理JAR文件的效率和便捷性。
926 14
|
Java
java基础(4)public class 和class的区别及注意事项
本文讲解了Java中`public class`与`class`的区别和注意事项。一个Java源文件中只能有一个`public class`,并且`public class`的类名必须与文件名相同。此外,可以有多个非`public`类。每个类都可以包含一个`main`方法,作为程序的入口点。文章还强调了编译Java文件生成`.class`文件的过程,以及如何使用`java`命令运行编译后的类。
640 3
java基础(4)public class 和class的区别及注意事项
|
Java 编译器 Maven
Java“class file contains wrong class”解决
当Java程序运行时出现“class file contains wrong class”错误,通常是因为类文件与预期的类名不匹配。解决方法包括:1. 确保类名和文件名一致;2. 清理并重新编译项目;3. 检查包声明是否正确。
415 3
|
Java 程序员 编译器
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。本文通过示例详细解析了保留字的定义、作用及与自定义标识符的区别,帮助开发者避免因误用保留字而导致的编译错误,确保代码的正确性和可读性。
558 3
|
Java
让星星⭐月亮告诉你,Java synchronized(*.class) synchronized 方法 synchronized(this)分析
本文通过Java代码示例,介绍了`synchronized`关键字在类和实例方法上的使用。总结了三种情况:1) 类级别的锁,多个实例对象在同一时刻只能有一个获取锁;2) 实例方法级别的锁,多个实例对象可以同时执行;3) 同一实例对象的多个线程,同一时刻只能有一个线程执行同步方法。
163 1
|
小程序 Oracle Java
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
这篇文章是关于JVM基础知识的介绍,包括JVM的跨平台和跨语言特性、Class文件格式的详细解析,以及如何使用javap和jclasslib工具来分析Class文件。
338 0
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
|
Java Windows
如何在windows上运行jar包/JAR文件 如何在cmd上运行 jar包 保姆级教程 超详细
本文提供了一个详细的教程,解释了如何在Windows操作系统的命令提示符(cmd)中运行JAR文件。
8875 1