我想知道是否有可能在启动时有一个Java桌面应用程序,查看某个URL,看看是否需要更新,如果是这样,下载必要的JAR文件,并将它们添加到运行程序的类路径中.
如果旧的罐子在那里,它们不应该已经加载到类加载器中,此时应该是吗?是否有可能在加载w/out重启应用程序之前将它们换掉?
如今,赋予实用程序应用程序"自动更新"功能似乎是基本的好方法.
我正在考虑像Reflector或Paint.NET这样的应用程序,主动告诉你"嘿,有一个更新的版本可用.想下载吗?"
问:是否有人知道可以由来自Codeplex项目的应用程序使用的通用框架,如果有更新版本,则提醒用户,并可选择直接从CodePlex下载并安装新版本?
显然有ClickOnce和Updater Block,我自己编写了实用程序类,用于winforms和WPF,其他人也编写了类似的东西,但所有这些都要求app发布者在Codeplex之外发布应用程序,命令自动更新工作.我想象的是直接从codeplex下载的东西.
编辑
我可以想象这样一个框架可能会强加一个关于如何将应用程序发布到codeplex的结构.它可能需要与每个版本一起发布"manifest.xml",并且该清单文件内部可能是应用程序版本,时间戳,发行版的注释,最新二进制下载的URL等等.
似乎有人会已经建立了这个.
我有一个工作的JNLP应用程序,我需要分发给各种非技术最终用户.
如果用户的计算机安装了最新的JVM,一切都很好.他们只需双击我发送的JNLP文件,Java Web Start完成剩下的工作.
现在我想分发一些有或没有JVM的东西,例如一个.exe自动下载兼容JVM的文件(如果不存在),然后调用javaws.exe下载.jar文件并启动应用程序.
Launch4J是我找到的最接近的匹配,但它无法启动程序javaws.exe.唯一的选择是java和javaw
我想要的产品可以:
.exe不需要预先安装JVM 的自包含文件.jnlp如果需要,解析文件并确定要下载的正确JVM(我知道Java Web Start可以在必要时下载JVM,但我想避免必须下载两个,第一个用于引导Java Web Start,第二个用于运行应用程序,可能需要特定但不同的JVM.).exe,但我不希望第二次提示确认他们信任.jar来自同一来源并使用相同证书签名的文件.)我假设这需要自动下载程序在启动JWS之前安装证书.).jar与JVM同时在后台下载应用程序资源(例如文件).这将要求在安装JVM之前运行缓存,因此缓存必须以本机代码实现,DownloadService然后使用JNI 与缓存接口.这样的产品是否存在?我怀疑它没有,但它值得一试.
更新我发现这篇文章有一些相关问题的解决方案,虽然它是专为离线安装而设计的,我主要关心的是在线安装.
如何计算输入HTML元素的宽度以使其与其内容的大小相匹配?我已经在用户输入时动态更新输入:
<input type='text' onkeydown='this.size=this.value.length' />
Run Code Online (Sandbox Code Playgroud)
但是,这似乎并不完全正确,因为它没有考虑到某些字符比其他字符长的事实:
如何进行?
PS:为什么我要这样做(已经在已删除的答案中回答了这个问题)?我有句子,我必须通过输入替换括号内容(例如:[user]是[年]旧).我不知道这个句子是什么,所以我不知道输入的长度是多少,我想让它在一行上保持可读(避免太多的空格).
我想创建一个Node.js应用程序,它定期检查更新并安装它们(如果有的话).
基本组件对我来说很清楚:
然后,可能有不同的策略来检查更新和安装更新:
应用程序甚至可以很难关闭并自动重启.
但是还有一些问题:
data文件夹吗?npm install&co.对于新下载的包?一般来说:你会如何尝试实现这样的系统?
最近我将修复应用于Java桌面应用程序.我通过更改其中一个类中的代码,编译它并将新jar发送到生产环境来完成此操作.
我现在被问到是否可以通过复制我修复的编译类来修改生产中的jar,甚至创建一个能够仅更新修改后的文件的修补程序/脚本.
附加信息:
我提出的最佳答案就是这个,但它已经有2年了. 修补Java软件
我的要求很少吗?我从未见过修补Java应用程序的教程.
我有一个主要在NodeJS上运行的项目.在启动期间,它会创建一个socket.io + http服务器和一些工作者(主要是在特定事件上完成工作的事件监听器).
现在,我想实现一个工作进程,该进程自动检查在同一服务器上通过GitLab托管的git仓库上是否有新的提交.
所以我想知道:
目前该项目作为开发服务器运行,一旦处于生产状态,我可能会关闭自动更新功能.但是,由于我在笔记本电脑上开发但在远程服务器上进行测试,因此自动更新程序会很方便.
我正在尝试设置我自己的服务器来托管apk文件,这些文件可用于客户端应用程序中的安装和更新.
在apk的新版本更新中,只有更新的部分应该在客户端下载.我能够在服务器端使用"bsdiff"生成补丁文件.但是在客户端,我应该如何将补丁文件与原始apk合并并安装更新.
android auto-update updates android-package-managers android-install-apk
我构建了一个Electron应用程序,现在我正在研究如何分发它.我和电子制造商一起去处理包装等.
对于一些上下文,作为Web开发人员,我习惯于在Web服务器上不断部署Web应用程序,但我很难弄清楚如何在Electron中分发打包的应用程序.
在电子建设者文档中,有一个关于测试自动更新的简短提及:
"请注意,为了在不打包应用程序的情况下开发/测试更新的UI/UX,您需要在项目的根目录中创建名为dev-app-update.yml的文件,该文件与电子构建器配置中的发布设置相匹配(但是以YAML格式)"
但是,它相当含糊......
所以我实际上有两个问题:
1.我如何实际测试自动更新流程?
我是否需要实际发布新版本以在本地触发更新?似乎很不清楚,这就像开发生产服务器一样.
2.是否可以对未签名的代码进行回退?
我还没有任何代码签名证书.因此OS/app将阻止自动更新.但是,我仍然想告诉用户更新可用,以便他们可以手动下载应用程序.我能这样做吗?(回到第1点,我希望能够测试这个流程)
我在Play商店上传了我的应用程序,然后上传了该应用程序的新版本.但是,我没有收到更新我的应用程序的任何通知.它似乎已自动更新到新版本.
我选择了仅通过Wi-Fi更新应用程序的选项.许多其他应用程序会自动更新,但我的不是.这是为什么?