使用Pack200压缩你的代码

Java5中带了一个压缩工具:Pack200,这个工具能对普通的jar文件进行高效压缩。其实现原理是根据Java类特有的结构,合并常数池,去掉无用信息等来实现对java类的高效压缩。由于是专门对Java类进行压缩的,所以对普通文件的压缩和普通压缩软件没有什么两样,但是对于Jar文件却能轻易达到10-40%的压缩率。这在Java应用部署中很有用,尤其对于移动Java计算,能够大大减小代码下载量。

Java5中还提供了这一技术的API接口,你可以将其嵌入到你的程序中使用。使用的方法很简单,下面的短短几行代码即可以实现jar的压缩和解压:

压缩

Packer packer=Pack200.newPacker();
OutputStream output=new BufferedOutputStream(new FileOutputStream(outfile));
packer.pack(new JarFile(jarFile), output);
output.close();

解压

Unpacker unpacker=Pack200.newUnpacker();
output=new JarOutputStream(new FileOutputStream(jarFile));
unpacker.unpack(pack200File, output);

output.close();

更为详细介绍,请见下面的网址:

http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment-guide/pack200.html

转载于:https://www.cnblogs.com/IamThat/archive/2013/06/02/3113937.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PFC2D是一种用于离散颗粒模拟的软件工具,可用于模拟颗粒物质在三轴压缩实验中的行为。下面是一个基本的PFC2D三轴压缩实验代码示例: 1. 导入所需的库和模块: ```cpp from yade import pack, plot from yade import utils, plot, export utils.step = 0.001 # 定义时间步长 O.materials.append(FrictMat(Young=600000, Poisson=0.3, Ys=10000, sigmaT=10, density=2700, label='particles')) # 定义颗粒物质的力学属性 ``` 2. 创建颗粒堆积: ```cpp N = 10 # 定义颗粒的数量 diameter = 0.01 # 定义颗粒的直径 spheres = pack.randomDensePack(L=[1,1,1], N=N, rMean=diameter/2, rRelFuzz=0.1) # 创建颗粒堆积 for s in spheres: O.bodies.append(utils.sphere([s.position[0], s.position[1], s.position[2]], radius=diameter/2, material='particles')) # 将颗粒添加到模拟中 ``` 3. 设置边界条件: ```cpp xtol = 0.001 # x方向边界条件的容差 ytol = 0.001 # y方向边界条件的容差 ztol = 0.001 # z方向边界条件的容差 O.engines = [ ForceResetter(forceMask=1), InsertionSortCollider([Bo1_Sphere_Aabb(), Bo1_Facet_Aabb()]), InteractionLoop( [Ig2_Sphere_Sphere_ScGeom(), Ig2_Sphere_Facet_ScGeom()], # 定义颗粒之间和颗粒与边界之间的力学相互作用 [Ip2_FrictMat_FrictMat_FrictPhys()], # 定义力学模型 [Law2_ScGeom_FrictPhys_CundallStrack()],), NewtonIntegrator(), PyRunner(command='addPlotData()', iterPeriod=100), # 定义绘图周期 InsertionSortCollider([Bo1_Facet_Aabb(), Bo1_Wall_Aabb(), Bo1_Sphere_Aabb()]), InteractionLoop( [Ig2_Facet_Sphere_ScGeom(), Ig2_Wall_Sphere_ScGeom()], [Ip2_FrictMat_FrictMat_FrictPhys()], [Law2_ScGeom_FrictPhys_CundallStrack()]), NewtonIntegrator() ] ``` 4. 运行模拟: ```cpp O.run(1000) # 运行模拟1000次 plot.saveDataTxt('stress-strain.txt') # 存储应力应变数据 ``` 这是一个简单的PFC2D三轴压缩实验的代码示例,你可以根据需要进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值