我一直在尝试使用JWrapper来部署我正在开发的Java应用程序,但是我无法成功地将我的应用程序的“在线”Windows安装与Google Drive的虚拟主机设施配合使用(我的第一个)选择文件服务器)或DropBox(我的文件服务器的第二选择) . 仔细阅读执行[myApp] -windows64-online.exe时生成的日志,表明jWrapper安装机制无法访问远程安装文件(在我的Google Drive实现和DropBox实现的情况下) .
(顺便说一下,我的应用程序的“离线”Windows安装非常有效 . )
为了更容易地解决JWrapper支持人员(以及其他任何人可能在此线程上回复)的问题,我已经成功地模拟了JWrapper示例应用程序的问题 .
为了使用示例应用程序启用在线安装,我在jWrapper示例应用程序的构建参数中添加了一个额外的元素:
<UpdateURL>https://googledrive.com/host/0B0skoeyva4KiU01RbmYxS3JLYmc/</UpdateURL>
这是我在Google Cloud 端硬盘中创建的文件夹的公共网址,用于保存JWrapper为示例应用程序生成的“build”文件夹的内容 . 然后,我使用最新版本的JWrapper(jwrapper-00033253833.jar)为示例应用程序运行JWrapper构建过程,并将生成的“build”文件夹的内容复制到上面引用的Google Drive文件夹中 .
然后我打开提供的示例html以下载示例应用程序安装的“在线”版本:
https://googledrive.com/host/0B0skoeyva4KiU01RbmYxS3JLYmc/SampleAppEmbedExample.html
在上面的网页上,我点击了“下载SampleApp”按钮,导致我执行了SampleApp-windows64-online.exe的下载 . 然后,我在生成的安全警告中单击“运行”(没有带有示例应用程序的证书),JWrapper启动窗口出现几秒钟后消失 . Windows任务管理器显示所有JWrapper进程已终止 .
生成的结果安装日志文件位于:https://googledrive.com/host/0B0skoeyva4KiU01RbmYxS3JLYmc/Wrapper-2015-01-13-14-49-33-805.log
为了总结日志内容,似乎许多远程下载尝试都失败了,整个安装过程终止时出现以下消息:
[JREDownload] Failed to download JRE version file
我使用DropBox作为文件服务器重复整个构建和安装序列,结果类似 . 该安装日志文件位于:https://dl.dropboxusercontent.com/u/2023253/jwSample/Wrapper-2015-01-13-15-24-13-778.log
当尝试使用JWrapper生成的组件进行类似的“在线”安装时,这些结果完美地模拟了我在更大的Java应用程序中遇到的问题 .
感谢任何人都可以提供此问题的任何帮助 .
顺便说一句,我在使用Google Cloud 端硬盘进行网络托管时所遵循的说明如下:
http://googleappsdeveloper.blogspot.com/2012/11/announcing-google-drive-site-publishing.html
编辑2015-01-15
我注意到JWrapper在线安装过程生成的输出日志似乎显示了在输出"Failed to download JRE version file"的最终消息并终止之前从远程服务器("Required file size is unknown!")检索文件长度的许多失败 . 我的进一步测试确认,当调用getContentLength方法以确定文件的长度时,Google Drive HTTP连接始终返回0 . 但是,在我的测试中,仍然可以毫无问题地下载该文件 .
我无权访问JWrapper源代码,但可能是JWrapper安装程序错误解释文件长度为0,因为它与“文件不可访问”同义?
1 回答
Google Cloud 端硬盘在访问文件时显然会使用302重定向 . 以下是来自HTML文件的URL的示例响应:
鉴于重定向URL,Google似乎正在使用此查询来准备传输,然后期望通过在同一HTTP / 1.1会话中请求/启动来传递文件 .
我相信JWrapper目前不支持文件下载的重定向,这可能是导致此问题的原因,但我会在将来对其进行调查 . 目前虽然你需要使用一个服务来提供没有重定向的文件 .