我有一个jar文件形式的应用程序,大小约为2MB.出于几个原因,我必须将JRE与我的应用程序捆绑在一起.当我使用jar和JRE创建MSI时,MSI大小约为30MB.
我正在寻找一个商业或免费的JRE,我可以捆绑,以便我可以将我的MSI的大小减小到尽可能低.我总共看5MB,但即使高达10MB也可以.预建的JRE二进制文件很棒,但不是绝对必须的.
这些和其他线程中的很多答案都表明Excelsior.我下载了Excelsior JET的评估版并试了一下 - 由于一些原因,我认为它可能不适合我.
1)Excelsior着眼于减少已安装产品的占地面积,而不是安装程序.我不太关心已安装产品的大小 - 我主要关注较小的下载(我的产品安装程序目前为30MB).
2)除此之外,Excelsior对代码进行了大量优化以实现这一点 - 我根本不想触及我的jar文件.我希望我的罐子里有一个较小的JRE.也没有办法关闭一些优化措施.
3)Excelsior创建一个EXE - 我不是特别想要这个 - 我可以通过javaw.exe命令行调用我的产品.
那么对我的需求有什么建议吗?
我正在将一个相对较小的项目从Ant转换为Gradle.我希望将构建脚本中的行数减少大约75%!
Ant构建的一件事是生成源ZIP(即整个项目的ZIP,删除了某些位 - ./build,各种Eclipse文件夹等).虽然将其迁移到Gradle,但我决定使用"包含" "方法,而不是"独占"的方法,以便事情不会在以后被意外包括在内.
我希望能够获取所有源集的源代码和资源,而无需明确列出目录,但我无法使其正常工作.
这是我到目前为止(甚至没有运行!):
task srcZip(type: Zip) {
classifier = 'src'
from projectDir
include {
sourceSets.collect {
it.allSource.asPath
}
}
}
Run Code Online (Sandbox Code Playgroud)
ZIP文件应该以文件夹'src/main/java/...','src/main/resources/...','src/test/java/...'等结束,我不应该我稍后添加更多源集时需要重新访问此任务.
提前致谢!
在iOS 7.1之后,如果我们想要通过空中部署我们的企业应用程序,manifest.plist文件的URL 必须是HTTPS.
例如:
itms-services://?action=download-manifest&url=https://example.com/manifest.plist
Run Code Online (Sandbox Code Playgroud)
在我的服务器中,我使用自签名SSL证书.当我点击iPhone上的URL时,它会显示Could not connect to <ip-address>并记录典型的
NSUnderlyingError=0x15d37040 "The certificate for this server is invalid. You might be connecting to a server that is pretending to be `<ip-address>`, which could put your confidential information at risk.
Run Code Online (Sandbox Code Playgroud)
所以,我想知道我是否可以使用自签名SSL证书?
如果可以,我如何解决我遇到的问题?
我目前有一个Java测试库,它是用Maven构建的,并以jar形式发布.我的项目依赖于一个非常常见的库(Objectweb ASM),并且我遇到过类似路径中已经存在早期且不兼容的ASM版本的问题.因此,我开始使用jarjar-maven-plugin来创建jar,在内部重新打包ASM,它不会与另一个版本的ASM冲突.
这执行得很好,我的库可以作为依赖项拉入,没有问题.
但是,因为我的项目在ASM上具有编译范围依赖性,所以每当客户端项目添加我的库时,传递依赖关系也都被拉入.因此,假设,如果他们使用特定版本的ASM,并且他们还将我依赖的版本添加到类路径中,则它们具有未定义的行为.我想避免这种情况,并允许客户端依赖JarJar'd工件,而不会让Maven不必要地和可能危险地降低传递依赖性.
如何创建一个JarJar'd工件,用户可以依赖它而不会提取传递依赖关系?
我目前在我的计算机上下载并使用了连续统计分析'python发行版(称为anaconda).我的问题是我想将virtualenv用于烧瓶项目,而anaconda闪烁警告"不支持虚拟环境".有没有什么方法可以在同一台计算机上运行两个发行版,股票python和anaconda?
我有一个使用setuptools进行部署的Python项目,我大多数都遵循本指南的项目结构.该项目使用Google Protocol Buffers定义网络消息格式.我的主要问题是如何在安装过程中使setup.py调用protoc-compiler以将定义构建到_pb2.py文件中.
在这个问题中,建议只是将生成的_pb2.py文件与项目一起分发.虽然这可能适用于非常类似的平台,但我发现有几种情况不适用.例如,当我在使用Anaconda Python的Mac上进行开发并将生成的_pb2.py与项目的其余部分一起复制到运行Raspbian的Raspberry Pi时,总会有来自_pb2.py模块的导入错误.但是,如果我在Pi上新编译.proto文件,项目将按预期工作.因此,分发编译的文件似乎不是一个选项.
在这里寻找工作和最佳实践解决方案.可以假设protoc-compiler安装在目标平台上.
编辑:
由于人们询问失败的原因.在Mac上,protobuf版本是2.6.1.在Pi上它是2.4.1.显然,生成的protoc编译器输出使用的内部API已更改.输出基本上是:
File "[...]network_manager.py", line 8, in <module>
import InstrumentControl.transports.serial_bridge_protocol_pb2 as protocol
File "[...]serial_bridge_protocol_pb2.py", line 9, in <module>
from google.protobuf import symbol_database as _symbol_database
ImportError: cannot import name symbol_database
Run Code Online (Sandbox Code Playgroud) python installation software-distribution setuptools protocol-buffers
我收到了购买我开发的网站源代码的请求,我想知道是否有人处于相同的情况,如果有什么我应该特别注意的.有人建议我应该如何应对这种情况?
除了Shoes之外还有什么方法可以开发和分发用Ruby编写的跨平台GUI桌面应用程序吗?
我开始相信_why应用程序的普遍缺陷在鞋子的情况下异常严重,而任何比双按钮形式更复杂的东西都是难以维护的.
RubyGTK,wxRuby等似乎很有前途,但它们并没有解决以不需要在用户计算机上预安装Ruby的方式分发应用程序的问题 - 而像ruby2exe这样的库似乎非常糟糕 - 日期和不完整.
一般来说 - 目前的时尚是什么?
BTW:如果在Python中有一个非常简单的解决方案,我可以考虑重做我在Python中所做的事情.
几个月前我开始使用Dist :: Zilla.但是,在YAPC :: NA,有人提到他们使用的是ShipIt.那么今天我在github的 miyagawa的cpanminus目录中注意到了一个.shipit文件,所以我决定再研究一下......
我最初的印象是ShipIt有一个Dist :: Zilla可用的子集,但我不想妄下结论.那么,对于那些对两者都有过经验的人来说,ShipIt vs Dist :: Zilla的优点/缺点是什么?
我正在尝试为我的JAVA-9应用程序/项目拼图创建跨平台/平台独立的可执行文件.
我认为jlink命令将只创建特定于平台的可执行文件/运行时.
software-distribution jlink java-platform-module-system java-9
python ×3
anaconda ×1
artifact ×1
classpath ×1
deployment ×1
desktop ×1
dist-zilla ×1
enterprise ×1
gradle ×1
installation ×1
ios ×1
jarjar ×1
java ×1
java-9 ×1
java-platform-module-system ×1
jlink ×1
maven ×1
perl ×1
ruby ×1
setuptools ×1
zip ×1