从访客计算机上的网页运行java类文件?

从访客计算机上的网页运行java类文件?,java,browser,file-io,applet,Java,Browser,File Io,Applet,我编写了一个Java程序来读取和修改计算机上的文件。该程序仅基于一个类 目前,想要使用它的用户必须从终端运行它,我正在研究如何将其插入网页,并使其在访问者的计算机上运行。最好有一个文件选择器(用户需要进行此修改) 我在互联网上搜索并找到了Java小程序,但我读到它们不是本地下载和执行的,所以程序无法运行 如何从网页中提供Java类文件,供最终用户的计算机上使用?如果您真的想下载Java程序并在本地运行,您应该签出 简单地说,它允许用户在其机器上本地下载并运行Java程序。它做了一些聪明的事情,比

我编写了一个Java程序来读取和修改计算机上的文件。该程序仅基于一个类

目前,想要使用它的用户必须从终端运行它,我正在研究如何将其插入网页,并使其在访问者的计算机上运行。最好有一个文件选择器(用户需要进行此修改)

我在互联网上搜索并找到了Java小程序,但我读到它们不是本地下载和执行的,所以程序无法运行


如何从网页中提供Java类文件,供最终用户的计算机上使用?

如果您真的想下载Java程序并在本地运行,您应该签出

简单地说,它允许用户在其机器上本地下载并运行Java程序。它做了一些聪明的事情,比如识别更新的版本是否可供下载,如果是当前版本,它将运行缓存的版本

这是一个例子

我读到它们不是本地下载和执行的


无论你读到哪里,它都是100%错误的。小程序下载到浏览器中,并在客户端主机上执行。

小程序可以在本地修改文件,前提是这些文件已签名且用户允许

阅读签名小程序

…如果有一个文件选择器就好了

在这种情况下,基本上有两种选择,正如我在整个问题的评论中所概述的&答案。我将在这里收集它们:

  • 对小程序进行数字签名,让用户在收到提示时(在加载小程序之前)接受数字签名代码,然后提供
    JFileChooser
    浏览文件
  • 如果用户有插件2 JRE(有关详细信息,请查看中的链接),则可以无提示地将小程序交付给用户,然后利用JNLP API生成文件选择器。在对话框出现之前将提示用户,这一次会显示更具体的警告
  • JWS
    • 例如,请参阅my applet based,它在用户加载图像帧或保存动画GIF时使用JNLP API
    • 这个applet不是开源的(主要是因为我懒得重新访问和整理代码),但是有一个更好的applet源代码
    数字签名
    我没有任何关于数字签名代码过程的链接,但请注意,上面列出的“使用JNLP文件服务的示例”为两种不同的安全环境提供了一组签名JAR。它还(希望很明显)演示了如何使用Ant对代码进行数字签名(这一切都是通过调用
    build.xml
    中的默认任务来实现的)。

    …或者你需要问问那家法国公司的家伙,他们入侵了包括chromeno It's clean在内的所有浏览器,它会得到一个程序的配置文件并对其进行修改。提示用户启动java是可以的:)我仍然在学习java,所以我插入了它的绝对路径,但是有一个文件就可以了chooser@AndrewThompson我知道,伙计。只是尝试引用他的所有需求:)@kommradHomer只是尝试引用他的所有需求“你有没有考虑过使用你的权限..永远?;)“小程序可以在本地修改文件,如果它们已签名”。或者如果它们使用JNLP API。(不需要数字签名,但也有提示。)我创建了一个jar并对其进行了自我签名,现在作为小程序启动时,它要求完全访问计算机,所以应该可以工作,但遗憾的是,没有,我现在正在查找我的错误:)啊,“吱吱嘎作响的轮子得到了油。”;)至于代码签名面临的问题。一旦签名,用户单击“确定”,它应该可以工作。最好是如果你想沿着这条路走下去,可以在另一个问题上回答这个问题。这里的SO提供了一个很好的总结(在我有偏见的观点中)&进一步的链接(包括指向那个……非常晦涩的Oracle页面的链接)。如果您访问了Oracle对JWS的描述的第一个链接&从未听说过,该页面会对此进行解释吗?这会让我挠头。JWS是一种很棒的部署技术,供应商对它的名称和描述都不太清楚:(很高兴能提供我能提供的任何帮助和提示,特别是对那些经常提供帮助的人来说。:)我会使用已签名的小程序,因为我还是java新手,但非常感谢您的完整回复:)但是对于像Gifanm这样的解决方案,用户必须下载文件并启动它,它不会“自动”启动“任何代码都必须下载才能运行并影响用户计算机上的文件!一旦用户单击浏览器中的链接,下载就会自动进行。您是否尝试访问小程序并单击一些菜单项来查看它的工作原理?哎呀!顺便说一句,如果你查看“排名靠前”的答案提供者中的任何一个或,它支持我对这两个都“了解一点”。好吧,但现在我完全困惑了:S我想我会在更熟悉java的时候继续这个“项目”,谢谢你的帮助安德鲁:)“我想我会继续这个”项目“什么时候我会更熟悉java”这是我在这篇文章中听到的最聪明的一句话(这不是我说的),这是个好主意。