知识大全 Java的“静态库链接”

Posted

篇首语:书籍是横渡时间大海的航船。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java的“静态库链接”相关的知识,希望对你有一定的参考价值。

Java的“静态库链接”  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  Java的库组织方式就是 动态链接 的 从一个Java的jar包运行有可能要接一堆classpath就知道 和基于静态链接的C语言要实现动态链接要做额外的事情相似 Java要想实现类似C的静态链接也要做很多额外的事

  用类似Fat Jar的方法 把所有的依赖库打包的最后的库中 其实不是静态链接——C的静态链接只把需要的代码复制过来 不是眉毛胡子一把抓 按说 以Java的思想 静态链接不是很必要 因此也就没有原生支持 但实践和理论毕竟差距很远 不是每个库都是标准库 假设你从别人的库中引用了几个类 为了支持你的程序 你必须提供别人的库(假设这个库并不流行) 再假设你自己写了一个库 以后再开发类似的程序就从库中派生 当然你不想把所有的代码都发行出去 这个问题在Netbeans上更为明显 Netbeans提供了一个swing框架 用起来当然很方便 但是当发行程序的时候你就会发现 Netbeans很负责任的把依赖库放到发行目录的lib下 居然有将近 M (禁掉粗口) 光写一个窗口就要 M!

  ProGuard不光是个混淆器 它也能解决静态链接的问题 用它自己的话说是 It detects and removes unused classes fields methods and attributes 下面给出的是在Netbeans中用的Ant脚本 修改项目的build xml 添加

  <target name= post jar >           <taskdef resource= proguard/ant/task properties classpath= $libs proguard classpath />           <copyfile src= $dist jar dest= $dist dir/pre jar />           <proguard warn= false obfuscate= false >               <libraryjar path= $java home/lib/rt jar />               <injar path= $javac classpath filter= !META INF/MANIFEST MF />               <injar path= $dist dir/pre jar />               <outjar path= $dist jar />               <keep name= $main class >                   <method name= main />               </keep>               <keep name= jdesktop beansbinding ext BeanAdapterProvider />               <keepclasseswithmembernames>                   <method name= getServiceNames />               </keepclasseswithmembernames>               <keepclasseswithmembernames>                   <method name= addPropertyChangeListener />               </keepclasseswithmembernames>           </proguard>       </target>

cha138/Article/program/Java/hx/201311/26546

相关参考

知识大全 深入Java核心 Java内存分配原理精讲

深入Java核心Java内存分配原理精讲  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java

知识大全 Java核心 Java中多态的实现机制

Java核心Java中多态的实现机制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  多态性是面向

知识大全 Java趣味Java网络机器人

Java趣味Java网络机器人  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  packageau

知识大全 让Java说话-用Java实现语音引擎

让Java说话-用Java实现语音引擎  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  为应用

知识大全 Java Reflection (JAVA反射)详解

JavaReflection(JAVA反射)详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Java基础 JavaScript和Java的区别详细说明

Java基础JavaScript和Java的区别详细说明  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 Java语言深入 final在java中的应用

Java语言深入final在java中的应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!fina

知识大全 java 是什么语言写的

java是什么语言写的JAVA中就虚拟机是其它语言开发的,用的是C语言+汇编语言基于此之上就是JAVA本身了虚拟机只起到解析作用另外,JAVA并不比C语言慢,说JAVA慢一般是九十年代那时候的JAVA

知识大全 JAVA语言安全行研究--Java的反编译

JAVA语言安全行研究--Java的反编译  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Jav

知识大全 如何优化JAVA程序开发,提高JAVA性能

如何优化JAVA程序开发,提高JAVA性能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  通过使