2012-02-28 24 views

Odpowiedz

2

Musisz mieć możliwość uruchomienia nowego procesu z poziomu przeglądarki. Jest na to kilka sposobów. Pokażę sposób JNLP, aby to zrobić.

Utwórz plik jnlp następująco:

<?xml version="1.0" encoding="utf-8"?> 
<jnlp spec="1.0+" codebase="http://example/" href="jnlpTest.jnlp"> 
    <information> 
     <title>Some Title</title> 
     <vendor>Some Vendor</vendor> 
     <homepage href="http://example/" /> 
     <description>Some Description</description> 
    </information> 
    <security> 
     <all-permissions/> 
    </security> 
    <resources> 
     <j2se version="1.6+" /> 
     <jar href="jnlpTest.jar" /> 
    </resources> 
    <application-desc main-class="MainClass" /> 
</jnlp> 

Tworzenie jnlpTest.jar z następujących opcji:

public class MainClass { 
    public static void main(String args[]) { 
     Runtime rt = Runtime.getRuntime(); 
     try { 
      //TODO - different exec for Mac 
      rt.exec("explorer.exe"); 
     } catch (IOException e) { 
      //exception 
     } 

    } 
} 

Z oczywistego:

Manifest-Version: 1.0 
Main-Class: MainClass 

podpisać JNLP słoik:

keytool -genkey -keystore testKeys -alias jdc 
jarsigner -keystore testKeys jnlpTest.jar jdc 

umieść plik jar i jnlp na serwerze WWW. Upewnij się, że typ MIME JNLP jest obsługiwany jako application/x-java-jnlp-file.

Wniosek o dokonanie JNLP: http://java.dzone.com/articles/java-web-start-jnlp-hello

Teraz, gdy użytkownik kliknie link jnlp będą pobrać jar i się pytanie, czy to jest w porządku, aby uruchomić. Uruchomienie go spowoduje otwarcie okna eksploratora. Wiem, że to nie jest najlepsze rozwiązanie, ale każde rozwiązanie będzie wymagało od użytkowników pozwolenia na wykonanie kodu na swoim komputerze.

+0

Coś to niejasne powinny być naprawdę komentarz, a nie odpowiedź. Byłbym również bardzo zdziwiony, gdyby port Mac z Silverlight zawierał COM. – millimoose

+0

Zacząłem umieszczać to w komentarzu, ale chciałem dodać trochę więcej informacji niż "spróbuj tego adresu URL". Oto punkt wyjścia, jeśli to pomaga, jeśli nie ignoruje mojej odpowiedzi. –

+0

@DMoses Artykuł połączony na początku mówi: "Należy zauważyć, że te funkcje są dostępne tylko w podwyższonych uprawnieniach trybu Out-of-Browser i nie są dostępne w przeglądarce." Czy jesteś absolutnie odpowiedni do tego pytania? –

2

Dla node-webkit (NW.js) użytkowników można używać ...

var gui = require("nw.gui"); 

document.querySelector("[data-location]").onclick = function() { 
    gui.Shell.showItemInFolder(__dirname + '/content/project/' + this.textContent); 
}; 
Powiązane problemy