Я чувствую себя тупой ......JNLP не сотрудничает JFileChooser Access Denied
Так что я пишу приложение Java, и если вы можете помочь мне получить эту работу, вы будете в состоянии видеть Это.
так что мой файл баночка здесь: http://team2648.com/OTIS2/admin/OmniNode2.8.jar
Я хотел бы, чтобы она могла быть использована в качестве веб-запуска приложения Java, я следовал учебник здесь: http://download.oracle.com/javase/tutorial/deployment/webstart/deploying.html
, так что я написал следующий файл 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>
Но, как вы увидите, если вы загружаете JNLP http://team2648.com/OTIS2/admin/test.jnlp
и запустить его, мы получаем следующее сообщение об ошибке (на ПК):
access denied (java.io.FilePermission C:\Users\MyUserName\Documents read)
Исключение
java.security.AccessControlException: доступ запрещен (java.io.FilePermission C: \ Users \ Techplex Инженер \ Documents чтения)
на java.security.AccessControlContext.checkPermission (Unknown Source)
в java.security.AccessController.checkPermission (Unknown Source)
в java.lang.SecurityManager.checkPermission (Unknown Source)
в java.lang.SecurityManager.checkRead (Unknown Source)
на java.io.File.exists (Unknown Source)
на java.io.Win32FileSystem.canonicalize (Unknown Source)
в java.io.File.getCanonicalPath (Unknown Source)
в sun.awt.shell. Win32ShellFolderManager2.createShellFolder (Unknown Source)
на sun.awt.shell.Win32ShellFolderManager2.getPersonal (Unknown Source)
в sun.awt.shell.Win32ShellFolderManager2.get (Unknown Source)
в sun.awt.shell.ShellFolder. get (Неизвестный источник)
at javax.swing.filechooser.FileSystemView.getDefaultDirectory (Неизвестный источник)
at j avax.swing.JFileChooser.setCurrentDirectory (Unknown Source)
на javax.swing.JFileChooser (Unknown Source)
на javax.swing.JFileChooser (Unknown Source)
на omninode28.NodePanel (NodePanel.java...: 61)
в omninode28.EditPanel. (EditPanel.java:31)
в omninode28.Driver.main (Driver.java:25)
на sun.reflect.NativeMethodAccessorImpl.invoke0 (Родной метод)
at sun.reflect.NativeMethodAccessorImpl.inv Оке (Unknown Source)
на sun.reflect.DelegatingMethodAccessorImpl.invoke (Unknown Source)
в java.lang.reflect.Method.invoke (Unknown Source)
в com.sun.javaws.Launcher.executeApplication (Unknown Source)
at com.sun.javaws.Launcher.executeMainClass (Неизвестный источник)
at com.sun.javaws.Launcher.doLaunchApp (Unknown Source)
на com.sun.javaws.Launcher.run (Unknown Source)
на java.lang.Thread.run (Unknown Source)
Так что те файлы, которые он указывает на:
эта строка: fc = new JFileChooser();
Так что это заставляет меня думать, что мне нужно спросить у пользователя разрешение на запись в свою систему.
Я растерялся. Любая помощь была бы супер, Спасибо
Редактировать ... Должен ли я просто заставить пользователей напрямую загрузить Jar? плюсы минус?
FileOpenService только позволяет приложениям считывать файлы. Это FileSaveService, который подходит для записи. Ниже приведена демонстрация объекта FOS/FSS & FileContents. http://pscode.org/jws/api.html#fs –
@Andrew Thompson 'FileOpenService' также позволяет изменять выбранные файлы. Перед файловым выбором, который раньше только что прочитал, есть диалоговое окно предупреждения о безопасности. Показывает, сколько внимания программисты уделяют предупреждениям безопасности. –
К сожалению, «открытое» приглашение безопасности изменилось, так как оно сейчас довольно неточно. При приеме приглашения, даже с проверкой «всегда разрешать», по-прежнему появляется приглашение, когда пользователь переходит к сохранению файла. Или, по крайней мере, это поведение, которое я вижу в демо PSCode в настоящее время. Можете ли вы предоставить код или демоверсию, которая действует по-разному? –