通过实例解析传统jar包引用方式

一、首先编写一个工具类Hello:

public class Hello {
  public static void say(String message) {
    System.out.printf("Hello %s/n", message);
  }
}

这个类有一个对外暴露的say方法,可以用来打招呼,于是把它打成一个jar包供以后引用。

二、打jar包:

javac Hello.java  jar -cvf hello.jar Hello.class

三、引用jar包

Jar包的引用非常简单,放到系统设置的环境变量classpath中去就行了,也可以在命令行手动引用,下面是一个手动引用的例子:

1.将hello.jar拷贝到当前目录(也可以使用绝对路径,这里是为了方便)

2.编写要引用hello.jar的main.java:

public class Main {
  public static void main(String[] args) {
    Hello.say("world");
  }
}

这里可以看到是引用了hello.jar下面的Hello.class的静态方法say

3.编译字节码

javac -cp ‘hello.jar’ Main.java

4.运行生成的Main.class:

java -classpath ‘./hello.jar;’ Main

注意:classpath的参数要使用“;”号分隔。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间:2020-07-08

Java在制作jar包时引用第三方jar包的方法

我用的是Eclipse打包,但在CMD窗口执行的时候报"ActiveMQ.jar中没有主清单属性"错误. 在网上搜了下,这个与MANIFEST.MF文件有关,该文件没有定义MAIN方法所在类的路径,利用好压打开jar包,果然如此.里面只有一行 Manifest-Version: 1.0 需添加Main-Class.在本例中,添加如下: Main-Class: com.luoluo.TestUse.activemq.ActiveMQStateMain 上面,有几点需要注意: 1. Mai

vscode快速引入第三方jar包发QQ邮件

本文详细的介绍了vscode快速引入第三方jar包发QQ邮件,分享给大家,具体如下: 安装 jdk 直接安装下一步即是 安装maven 若想多版本切换,删除环境变量中的javapath即可 安装插件 vscode插件装一个pack就行了,后续想装哪个就哪个 使用第三方jar包 简单尝鲜某个jar包,使用maven或gradle太重.而配置一下.setting.json,然后将jar包直接放入该文件夹下即可,不需要手动添加到classpath. 当然前提是jar包先手动下载,大规模多依赖,还是需要

maven项目引用外部jar包的方法

问题描述: 有一个java maven web项目,需要引入一个第三方包gdal.jar,但是这个包是自己打包的,在maven中央库里面找不到该包,因此我采用传统的方式,将这个包拷贝到:项目名称/src/main/webapp/WEB-INF/lib的目录下,然后通过config build path将该gdal.jar包引入到项目工程中.对于传统java web项目,这么做当然没有问题,但是对于maven项目,项目打包(mvn install)时就会报错,在项目调试时(debug on ser

Android Studio 在项目中引用第三方jar包的方法

在Android Studio项目中引用第三方jar包的方法: 步骤: 1.在build.gradle文件中添加如下代码: 备注:要添加在Android作用域下 sourceSets { main { jniLibs.srcDirs = [‘libs’] } } 点击[Sync Now],会生成jniLibs文件夹 找到jniLibs文件夹对应的实体目录,把需要用到的jar包放到该目录下 在build.gradle文件中,在dependencies模块,添加以下代码: compile files

spring boot实战之本地jar包引用示例

部分情况下无法通过maven仓库直接下载需要的jar包,只能讲jar包下载至本地来使用,spring boot框架内通过maven加载第三方jar包可以通过以下方式来实现(本地jar放在lib/目录下),项目会打包为jar包来运行. 1.添加maven依赖 <dependency> <groupId>org.ansj</groupId> <artifactId>ansj_seg</artifactId> <version>3.0<

SpringBoot使用Maven打包异常-引入外部jar的问题及解决方案

由于项目需要,在需要打包的时候,由于引入的外部jar在本地是可以使用的,但是当打包后启动时报错,找不到对应的类. 使用 1.引入外部jar包 项目中简历文件夹lib 可以在resultces包下简历一个lib文件夹,将jar包扔进去: 在配置文件中引用 <dependency> <groupId>com.xx.xxx</groupId> //组织,随便命名 <artifactId>***</artifactId> //包的名字,随便命名 <

Maven打jar包的三种方式(小结)

不包含依赖jar包 该方法打包的jar,不包含依赖的jar包,也没有指定入口类. <build> <plugins> <plugin> <!– 指定项目编译时的java版本和编码方式 –> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.

Intellij IDEA 添加jar包的三种方式(小结)

一.直接复制:(不推荐) 方法:直接将硬盘上的jar包复制粘贴到项目的lib目录下即可. 注意: 1.对于导入的eclipse项目,该方式添加的jar包没有任何反应,用make编译项目会报错 2.对于在idea中创建的项目,该方式添加jar包,编译不报错,但是打开Structure会有"…jar … is missing …"的提示,需要点击"Fix"或红灯泡解决. 二.通过Modules的Dependencies添加:(推荐) 1.打开 File -&

java打jar包的几种方式详解

一.制作只含有字节码文件的jar包 我们先来看只含有字节码文件,即只含有class文件的jar包怎么制作,这是最简单的形式 1.最简单的jar包–直接输出hello 最终生成的jar包结构 META-INF Hello.class 方法步骤 (1)用记事本写一个Hello.java的文件 class Hello{     public static void main(String[] agrs){         System.out.println("hello");     }

javascript实现数据双向绑定的三种方式小结

前端数据的双向绑定方法 前端的视图层和数据层有时需要实现双向绑定(two-way-binding),例如mvvm框架,数据驱动视图,视图状态机等,研究了几个目前主流的数据双向绑定框架,总结了下.目前实现数据双向绑定主要有以下三种. 1.手动绑定 比较老的实现方式,有点像观察者编程模式,主要思路是通过在数据对象上定义get和set方法(当然还有其它方法),调用时手动调用get或set数据,改变数据后出发UI层的渲染操作:以视图驱动数据变化的场景主要应用与input.select.textarea等

android中Webview实现截屏三种方式小结

本人最近学习了android中Webview实现截屏三种方式,下面我来记录一下,有需要了解的朋友可参考.希望此文章对各位有所帮助. 第一种方式 通过调用webview.capturePicture(),得到一个picture对象,根据图像的宽和高创建一个Bitmap,再创建一个canvas,绑定bitmap,最后用picture去绘制. //获取Picture对象 Picture picture = wv_capture.capturePicture(); //得到图片的宽和高(没有reflec

Spring依赖注入的三种方式小结

通过实例解析传统jar包引用方式

Spring的主要特性包括IOC和DI,其中DI是IOC的基础.在以前的Spring使用过程中大部分都是使用XML配置文件显式配置spring组件,导致大量的XML配置文件以及冗余的XML配置代码.阅读<Spring in Action>后总结Spring的DI功能的三种主要装配方式以及混合装配方式 根据注解自动装配 Spring中有非常丰富的注解,通过这些注解可以方便地配置Spring容器,使得Spring容器可以自动识别相关Bean并做自动注入装配. 使用注解 @Component注解:标

SpringMVC访问静态资源的三种方式小结

如果你的DispatcherServlet拦截 *.do这样的URL,就不存在访问不到静态资源的问题.如果你的DispatcherServlet拦截"/",拦截了所有的请求,同时对*.js,*.jpg的访问也就被拦截了. 目的:可以正常访问静态文件,不要找不到静态文件报404. 方案一:激活Tomcat的defaultServlet来处理静态文件 <servlet-mapping> <servlet-name>default</servlet-name&g

Java 数组元素倒序的三种方式(小结)

将数组元素反转有多种实现方式,这里介绍常见的三种. 直接数组元素对换 @Test public void testReverseSelf() throws Exception { System.out.println("use ReverseSelf"); String[] strings = { "ramer", "jelly", "bean", "cake" }; System.out.println(

Java对象的复制三种方式(小结)

1.概述 在实际编程过程中,我们常常要遇到这种情况:有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能 会需要一个和A完全相同新对象B,并且此后对B任何改动都不会影响到A中的值,也就是说,A与B是两个独立的对象,但B的初始值是由A对象确定的.例如下面程序展示的情况: class Student { private int number; public int getNumber() { return number; } public void setNumber(int number)

vue组件创建的三种方式小结

1.使用Vue.extend创建全局的Vue组件 //1.1 使用vue.extend创建组件 var com1 = Vue.extend({ //通过template属性指定组件要展示的html结构 template : "<h3>使用vue.extend创建的组件</h3>" }) //1.2使用Vue.component(‘组件名称’,创建出来的组件模板对象) Vue.component(‘myCom1′,com1) 把名称以标签的形式放到页面中<m

JavaScript 定义function的三种方式小结

(1)声明一个表达式变量,并定义该变量的表达式.如: 复制代码 代码如下: var func = function() { /*body code*/ } (2) 定义一个function表达式,并指定该表达式的标识.如: 复制代码 代码如下: function func() { //body code } (3) 使用JavaScript内置Function对象构造.如: 复制代码 代码如下: var func = new Function("/*parameters*/",&quo

原文 

https://www.zhangshengrong.com/p/noXQbmAV1G/

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 通过实例解析传统jar包引用方式

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址