- 浏览: 502834 次
- 性别:
- 来自: 沈阳
文章分类
- 全部博客 (437)
- Windows设置 (2)
- oracle数据库 (39)
- bug--jsp (4)
- j2se (13)
- js (40)
- bug-tomcat不能启动程序 (1)
- Hibernate (29)
- eclipse (20)
- java (65)
- 设计模式 (6)
- bug (18)
- PL/SQL (11)
- 前台 (5)
- 杂谈 (25)
- UML (1)
- jdbc编程 (2)
- 技术调研 (1)
- 数据通信 (2)
- ios (1)
- servlet自学笔记 (10)
- tomcat (9)
- SQL学习笔记 (6)
- java工具 (1)
- 数据库设计 (4)
- javascript (10)
- jsp (11)
- struts (17)
- ajax (7)
- linix/Unix (6)
- 资源 (3)
- spring (14)
- 算法 (5)
- 计算机网络 (2)
- http (5)
- c++ (2)
- web应用 (3)
- jvm (5)
- java中的字符编码 (14)
- java代码库 (2)
- classloader (1)
- 读书笔记 (1)
- c (1)
- 开源软件 (1)
- svn (1)
- AOP (1)
- java序列化 (1)
- 多线程 (4)
- The legendary programmers (1)
- Apache http Server (1)
- html tag (3)
- struts1.X学习笔记 (5)
- buffalo (1)
- 自己收藏 (0)
- TOEFL(IBT) (1)
- 网络翻墙 (0)
- 编译原理 (1)
- 书籍推荐 (1)
- css (10)
- javaee环境搭建资料 (1)
- 开源工具 (1)
- 美国生活 (1)
- spring自学 (3)
- log4j (3)
- 算法与数据结构 (5)
- 病毒,插件处理大全 (1)
- flex (2)
- webservice (1)
- git (7)
- cs (1)
- html (4)
- javaee (6)
- 开车 (0)
- springmvc (3)
- 互联网架构 (2)
- intellij idea (18)
- maven (15)
- mongodb (2)
- nginx (1)
- react (3)
- java基础例子 (2)
- springboot (2)
- 培训 (5)
- mysql (3)
- 数据库 (3)
- 生活 (2)
- intellij (3)
- linux (2)
- os (3)
最新评论
-
潇洒天涯:
[color=blue][color=cyan] ...
oracle 通过 nvl( )函数sql 查询时为 空值 赋默认值 -
hekai1990:
受教了..
oracle中的varchar2
大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个jar包的程序入口。 具体的方法是修改jar包内目录META-INF下的MANIFEST.MF文件。 比如有个叫做test.jar的jar包,里面有一个拥有main函数的main class:test.someClassName 我们就只要在MANIFEST.MF里面添加如下一句话: Main-Class: test.someClassName 然后我们可以在控制台里输入java -jar test.jar即可以运行这个jar。 但是我们这个项目需要引用其他第三方的jar包,在eclipse里面以项目jar包的形式引用了这个叫做some.jar的包,当时放在项目的lib子目录下,最后项目打包时把这个some.jar也打进来了,但是用java -jar执行这个test.jar的时候报找不到Class异常,原因就是jar引用不到放在自己内部的jar包。 那怎么办? 运行时将其加入classpath的方式行不行?就是在运行jar的同时加入classpath参数: java -classpath some.jar -jar test.jar 这种方式是不行的,因为使用classpath指定的jar是由AppClassloader来加载,java 命令 加了-jar 参数以后,AppClassloader就只关注test.jar范围内的class了,classpath参数失效。 那该怎么引用其他的jar包呢? 方法一、使用Bootstrap Classloader来加载这些类。 我们可以在运行时使用如下参数: -Xbootclasspath:完全取代系统Java classpath.最好不用。 方法二、使用Extension Classloader来加载 你可以把需要加载的jar都扔到%JRE_HOME%/lib/ext下面,这个目录下的jar包会在Bootstrap Classloader工作完后由Extension Classloader来加载。非常方便,非常省心。:) 方法三、还是用AppClassloader来加载,不过不需要classpath参数了 我们在MANIFEST.MF中添加如下代码: Class-Path: lib/some.jar lib是和test.jar同目录的一个子目录,test.jar要引用的some.jar包就在这里面。 然后测试运行,一切正常! 如果有多个jar包需要引用的情况: Class-Path: lib/some.jar lib/some2.jar 每个单独的jar用空格隔开就可以了。注意使用相对路径。 另:如果META-INF 下包含INDEX.LIST文件的话,可能会使Class-Path配置失效。INDEX.LIST是Jar打包工具打包时生成的索引文件,删除对运行不产生影响。 方法四、自定义Classloader来加载 这种方法是终极解决方案,基本上那些知名java应用都是那么干的,如tomcat、jboss等等。 这种方式有点复杂,需要专门开贴讨论。关于ClassLoader的原理和自定义ClassLoader可以参考这篇 http://longdick.iteye.com/blog/442213。 总结: 以上四种方法都可以用,特别是程序运行在非常单纯的环境中时。但是,如果是运行在多任务,多应用的环境中时,最好每个应用都能相互独立,第一种和第二种方案都有可能对其他应用产生影响,因此最好就是选择第三种和第四种。
-Xbootclasspath/a: 在系统class加载后加载。一般用这个。
-Xbootclasspath/p: 在系统class加载前加载,注意使用,和系统类冲突就不好了.
发表评论
-
【转】Spring的DAO异常-你可能忽视的异常
2018-10-11 05:04 539Spring的DAO框架没有抛出与特定技术相关的异常,例如 ... -
【转】java8 Optional
2018-10-05 02:39 467https://my.oschina.net/wangz ... -
java double checked locking broken
2018-09-15 01:56 486// Double-check idiom for lazy ... -
【转】JAVA泛型通配符(PECS)
2018-07-29 10:43 513在JAVA的泛型集合中,默认都可以添加null,除此以外, ... -
Differences between notify() and notifyAll()
2018-07-16 09:01 521Notification to number of th ... -
【转】深度解析Java多线程的内存模型
2018-07-16 09:00 486https://www.jianshu.com/p/a3f ... -
maven项目src源代码下的资源文件不自动复制到classes文件夹的解决方法
2018-07-01 23:34 1187POM文件 <build><resour ... -
java好用的开源库
2018-04-28 23:40 0guava--google第三方数据结构开源包 Vardu ... -
【转】java rmi
2018-01-03 18:57 397此处讲的是Java中的RMI ... -
【转】字符编码笔记:ASCII,Unicode 和 UTF-8
2017-12-12 19:09 449今天中午,我突然想搞清楚 Unicode 和 UTF-8 之 ... -
【转】Java web 学习路线
2017-06-14 15:55 700JSP -> Servlet -> Java ... -
有意思的ASCII程序注释
2017-06-14 10:39 732/** * * create ... -
【转】Java基础知识总结(绝对经典)
2017-06-13 14:13 517本人学习java时,做的java基础知识总结: 因内容较 ... -
java定时任务
2017-03-27 10:08 409import java.util.concurrent.Ex ... -
二分查找(java实现)
2017-03-21 11:02 484二分查找 算法思想:又叫折半查找,要求待查找的序列有序。每 ... -
java环境配置
2017-03-15 15:46 437增加系统变量: JAVA_HOME C:\Program ... -
Java中的Big(Little)-endian问题的一种解决方法
2017-03-08 15:47 1030http://blog.sina.com.cn/s/blo ... -
【转】Spring3.3 整合 Hibernate3、MyBatis3.2 配置多数据源/动态切换数据源 方法
2016-12-13 15:07 703http://www.cnblogs.com/hoojo ... -
【转】JNDI学习总结(三)——Tomcat下使用Druid配置JNDI数据源
2016-12-13 14:50 1274http://www.cuomi.com/html/co ... -
【转】JNDI学习总结(二)——Tomcat下使用C3P0配置JNDI数据源
2016-12-13 14:48 724http://blog.csdn.net/samjustin ...
相关推荐
Java运行在Java虚拟机(JVM)上,而.NET应用程序则依赖于微软的公共语言运行时(CLR)。要让.NET程序能够调用Java代码,我们需要一个中间桥梁,这就是IKVM.NET。 IKVM.NET是一个开源项目,它实现了Java虚拟机的部分...
Fat Jar是一种特殊的JAR文件格式,它可以将所有依赖项打包到一个JAR文件中,使得应用程序可以独立运行。但是,在某些情况下,Fat Jar生成的jar文件可能不能被正确地引用,导致应用程序无法正常运行。那么,如何解决...
总之,Java调用Kettle通过引入相关jar包并利用其API,能够无缝地将强大的Kettle ETL功能集成到Java应用程序中,从而实现更复杂的业务逻辑和数据处理需求。这为开发人员提供了更大的灵活性,同时利用了Kettle的可视化...
### Launch4j 教程——JAR应用程序生成exe #### 一、介绍 Launch4j 是一款用于将 Java 应用程序(JAR 文件)封装为 Windows 本地可执行文件 (.exe) 的工具。它提供了丰富的功能,如本地弹出屏幕、应用程序图标定制...
在Java开发过程中,将项目打包成...总之,fat jar是解决Eclipse打包含第三方库问题的一种有效方法,通过整合所有依赖,使Java应用程序能够在任何环境中独立运行。了解和掌握这一技术,对于Java开发者来说是非常重要的。
总之,无论是通过修改环境变量还是在命令行中使用`-cp`参数,正确地引入外部JAR包对于构建功能完整的Java应用程序至关重要。掌握这些技巧,可以帮助开发者更高效地管理和利用外部库,提高项目的可维护性和扩展性。
通过IKVM,Java类库可以被.NET应用程序直接引用,反之亦然,.NET组件也可以在Java环境中使用。 二、转换过程 1. 安装IKVM:解压"jar转dll.zip",其中包含不同架构(x86和x64)的bin目录,里面含有IKVM的可执行文件...
如果这个jar包包含公共API,那么它需要被正确添加到运行时的类路径中,以便其他程序可以引用它的类和方法。 5. **API Documentation (Javadoc)**:为了有效地使用这个jar包,开发者通常需要访问API文档,了解其提供...
在IT行业中,jar包是Java应用程序的标准打包格式,它包含了类文件、资源文件以及元数据。当多个jar包包含相同类名时,可能会引发版本冲突问题。为了应对这种问题,"jar包修改神器"应运而生。这个压缩包文件提供了...
Servlet是Java平台上的一个核心组件,它允许开发者创建动态web应用程序。Servlet API是Java Servlet规范的一部分,它定义了服务器端程序如何与HTTP协议交互以及如何处理来自web客户端的请求并返回响应。`servlet.jar...
在.NET框架中,DLL是共享代码的主要形式,可以在多个应用程序之间重用。Java的jar文件则包含了编译后的字节码,用于Java虚拟机(JVM)执行。要实现这一转换,我们需要借助一个名为IKVM的开源工具。 **IKVM工具详解...
手机推送服务是现代移动应用中的关键组成部分,它允许应用程序在后台向用户的设备发送通知,即使应用未在前台运行。uniAPP的push服务就是这样一个工具,它帮助开发者实现在uniAPP应用中集成推送通知功能,提高用户...
Java程序的jar(Java Archive)包是Java平台特有的打包机制,它将多个类文件、资源文件和元数据打包成一个单一的可执行文件,...通过理解jar包的工作原理和使用方法,开发者能够更好地管理和部署自己的Java应用程序。
"kafka需要的jar包集合"这个标题暗示了我们正在讨论的是用于Java开发Kafka应用程序所需的依赖库。这些JAR文件通常包含API接口、实现类和其他必要的组件,使得Java程序能够连接到Kafka集群,生产或消费消息。 首先,...
因此,在实际操作中,建议先进行充分的测试,确保删除jar包不会影响程序的正常运行。 此外,还有一些自动化工具,如ProGuard和DexGuard,它们在代码混淆的同时,也能去除未使用的类和方法,进一步优化应用大小。...
标题“程序运行所需jar包”指的是在开发或执行Java应用程序时必不可少的库文件。这些JAR文件包含了各种功能模块,如数据库连接、图形用户界面(GUI)、网络通信等,它们是程序能够正常运行的关键组件。 `ideajar`,...
这四个JAR文件中的`api.jar`可能指的是WebLogic的其他API集合,它可能包含了特定版本的WebLogic Server提供的额外接口和类,用于扩展或定制服务器行为。 在实际开发过程中,开发者需要根据具体需求选择引入这些JAR...
它是一个归档文件格式,包含了一个或多个.class文件,这些文件构成了Java应用程序的可执行代码。JAR文件可以包含一个清单(MANIFEST.MF)文件,用于指定启动类和其他元数据。 要自动加载JAR文件并运行其中的类方法...
Java jar打包成exe应用程序是一种将Java程序转换为可执行文件(.exe)的过程,以便在没有Java环境的计算机上也能运行。这主要涉及到Java的跨平台性和可移植性,以及如何将Java字节码转化为Windows操作系统能直接执行...