Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JNLP不合作JFileChooser访问被拒绝_Java_Jnlp - Fatal编程技术网

Java JNLP不合作JFileChooser访问被拒绝

Java JNLP不合作JFileChooser访问被拒绝,java,jnlp,Java,Jnlp,我觉得自己真的很笨 因此,我正在编写一个Java应用程序,如果您能帮助我使其工作,您将能够看到它 我的jar文件在这里: 我希望它能够用作Java web start应用程序,我在这里遵循了教程: 因此,我按照指示编写了以下JNLP文件: <?xml version="1.0" encoding="UTF-8"?> <jnlp spec="1.0+" codebase="http://team2648.com/OTIS2/admin" href="test.jnlp">

我觉得自己真的很笨

因此,我正在编写一个Java应用程序,如果您能帮助我使其工作,您将能够看到它

我的jar文件在这里:

我希望它能够用作Java web start应用程序,我在这里遵循了教程:

因此,我按照指示编写了以下JNLP文件:

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" 
codebase="http://team2648.com/OTIS2/admin" 
href="test.jnlp">
<information>
    <title>OmniNode Mapper</title>
    <vendor>Techplex Engineer</vendor>
</information>
<resources>
    <!-- Application Resources -->
    <j2se version="1.6+"
      href="http://java.sun.com/products/autodl/j2se"/>
    <jar href="OmniNode2.8.jar" main="true" />

</resources>
<application-desc
     name="OmniNode Mapper"
     main-class="omninode28.Driver"
     width="300"
     height="300">
 </application-desc>
 <update check="background"/>
</jnlp>
例外情况

java.security.AccessControlException:访问被拒绝java.io.FilePermission C:\Users\Techplex Engineer\Documents read 位于java.security.AccessControlContext.checkPermissionUnknown Source 位于java.security.AccessController.checkPermissionUnknown Source 位于java.lang.SecurityManager.checkPermissionUnknown Source 位于java.lang.SecurityManager.checkReadUnknown Source 位于java.io.File.existsUnknown Source 位于java.io.Win32FileSystem.canonicalizeUnknown Source 位于java.io.File.getCanonicalPathUnknown Source 位于sun.awt.shell.win32ShellFolderManager.createShellFolderUnknown源 位于sun.awt.shell.win32ShellFolderManager.getPersonalUnknown源 位于sun.awt.shell.win32ShellFolderManager.getUnknown源 位于sun.awt.shell.ShellFolder.getUnknown Source 位于javax.swing.filechooser.FileSystemView.getDefaultDirectoryUnknown Source 位于javax.swing.JFileChooser.setCurrentDirectoryUnknown Source 位于javax.swing.JFileChooser.Unknown Source 位于javax.swing.JFileChooser.Unknown Source 在omninode28.NodePanel.NodePanel.java:61 在omninode28.EditPanel.EditPanel.java:31 在omninode28.Driver.mainDriver.java:25 在sun.reflect.NativeMethodAccessorImpl.invoke0Native方法中 位于sun.reflect.NativeMethodAccessorImpl.invokeUnknown源 在sun.reflect.DelegatingMethodAccessorImpl.invokeUnknown源 位于java.lang.reflect.Method.invokeUnknown源 位于com.sun.javaws.Launcher.executeApplicationUnknown Source 位于com.sun.javaws.Launcher.executeMainclass未知源 位于com.sun.javaws.Launcher.doLaunchAppUnknown Source 位于com.sun.javaws.Launcher.run未知源 位于java.lang.Thread.runUnknown Source

所以它指向的那些文件:

此行:fc=新的JFileChooser

因此,这让我相信我需要请求用户的权限才能写入他们的系统

我糊涂了。 任何帮助都是超级的, 谢谢

编辑。。。 我应该让用户直接下载Jar吗?
利与弊?

一种可能是,您的jar未按所述进行签名

一种可能是,您的jar未按所述进行签名

显然,您浏览的任何网站都无法从本地文件系统读取内容。所以这是不允许的


也许解决这个问题的最好方法是使用。这为应用程序提供了一个简单的界面,让它可以访问某种描述的文件选择器,该选择器可以在不直接访问文件系统的情况下打开、读取和写入用户选择的文件。

显然,如果您浏览的任何网站都能够从本地文件系统读取,这将是一个坏主意。所以这是不允许的


也许解决这个问题的最好方法是使用。这为应用程序提供了一个简单的界面,可以打开一些描述的文件选择器,很遗憾,这些选择器可以在不直接访问文件系统的情况下打开读写用户选择的文件。

您必须对JAR进行签名,并通过将此代码段添加到jnlp中来授予类权限:

<security>
  <all-permissions/>
</security>

您必须对JAR进行签名,并通过将以下代码段添加到jnlp中来授予类权限:

<security>
  <all-permissions/>
</security>

FileOpenService只允许应用程序读取文件。正是FileSaveService为写作服务。下面是FOS/FSS和FileContents对象的演示@Andrew Thompson FileOpenService还允许修改所选文件。在文件选择器之前有一个毫无意义的安全警告对话框,该对话框通常表示“刚刚读取”。显示了程序员对安全警告的重视程度。不幸的是,“打开”安全提示已更改,因为它现在非常不准确。即使选中“始终允许”,接受提示仍会在用户保存文件时产生提示。或者至少,这是我目前在PSCode演示中看到的行为。您能提供不同的代码或演示吗?FileOpenService只允许应用程序读取文件。正是FileSaveService为写作服务。下面是FOS/FSS和FileContents对象的演示@Andrew Thompson FileOpenService还允许修改所选文件。在文件选择器之前有一个毫无意义的安全警告对话框,该对话框通常表示“刚刚读取”。显示了程序员对安全警告的重视程度。不幸的是,“打开”安全提示已更改,因为它现在非常不准确。即使选中“始终允许”,接受提示仍会在用户保存文件时产生提示。或者至少,这是我目前在PSCode演示中看到的行为。可以 您提供的代码或演示的行为有所不同?