{"id":12915,"date":"2018-05-14T15:19:28","date_gmt":"2018-05-14T13:19:28","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=12915"},"modified":"2018-05-14T15:19:28","modified_gmt":"2018-05-14T13:19:28","slug":"java-web-start-applicazioni-java-ovunque","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/java-web-start-applicazioni-java-ovunque\/","title":{"rendered":"Java Web Start: applicazioni Java ovunque"},"content":{"rendered":"<p>Una volta che si \u00e8 completato lo sviluppo di un&#8217;<strong>applicazione Java<\/strong> per uso desktop,\u00a0l&#8217;aspetto pi\u00f9 importante \u00e8 riuscire a <strong>distribuirla su tutti i client<\/strong> che ne abbiano bisogno: per tale scopo ci pu\u00f2 essere molto utile la tecnologia <strong>Java Web Start<\/strong>.<\/p>\n<p>Consiste nell&#8217;utilizzo del <strong>Java Network Launch Protocol (JNLP)<\/strong> un protocollo che permette di lanciare l&#8217;esecuzione di un programma desktop (non all&#8217;interno del browser con una applet) <strong>sfruttando risorse allocate su un server web<\/strong>.<\/p>\n<p>Ci\u00f2 che dovremo fare sar\u00e0:<\/p>\n<ol>\n<li>predisporre un file in XML che funger\u00e0 da<strong> descrittore JNLP<\/strong>;<\/li>\n<li>collocare, in base all&#8217;indirizzo predisposto nel file JNLP, il <strong>pacchetto JAR<\/strong> che rappresenta la nostra applicazione.<\/li>\n<\/ol>\n<p>Una volta collocati, questi due elementi su un server web sar\u00e0 sufficiente <strong>invocare l&#8217;indirizzo web del file jnlp<\/strong> e l&#8217;applicazione in automatico verr\u00e0 resa disponibile sulla macchina desktop.<\/p>\n<p>Ecco un esempio di file JNLP che permetter\u00e0 di lanciare il programma contenuto nell&#8217;ipotetico file Gestione.jar:<\/p>\n<pre class=\"lang:xhtml decode:true\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\n&lt;jnlp\r\n\tcodebase=\"http:\/\/www.example.com\/\"\r\n\thref=\"app.jnlp\"&gt;\r\n\t\r\n\t&lt;information&gt;\r\n\t\t&lt;title&gt;Gestione&lt;\/title&gt;\r\n\t\t&lt;vendor&gt;nomevendor&lt;\/vendor&gt;\r\n\t&lt;\/information&gt;\r\n\t\r\n\t&lt;resources&gt;\r\n\t\t&lt;j2se version=\"1.6+\" \/&gt;\r\n\t\t&lt;jar href=\"Gestione.jar\" \/&gt;\r\n\t&lt;\/resources&gt;\r\n\t\r\n\t&lt;application-desc main-class=\"gestione.utenti.App\" \/&gt;\r\n\t\r\n&lt;\/jnlp&gt;<\/pre>\n<p>Come presumibile, sar\u00e0 necessario personalizzare i dati in base alla propria applicazione.<\/p>\n<p>Ci\u00f2 sar\u00e0 sufficiente a predisporre la nostra applicazione alla distribuzione sulle macchine desktop che ne dovranno far uso e si noti, in proposito, che<strong> nel file jnlp viene\u00a0indicato anche il livello minimo di Java Runtime Environment<\/strong> che deve essere supportato.<\/p>\n<p>Inoltre un aspetto molto importante \u00e8 che <strong>la nostra applicazione Java non richieder\u00e0 alcun adattamento<\/strong> per l&#8217;uso con JNLP pertanto potremo progettarla \u00a0in maniera assolutamente consueta. Tale utilizzo si sposa benissimo con la realizzazione di applicazioni desktop con interfaccia utente, realizzate\u00a0il potente framework\u00a0<a href=\"http:\/\/www.devapp.it\/wordpress\/javafx-e-scenebuilder-creare-interfacce-utente-per-programmi-in-java\/\" target=\"_blank\" rel=\"noopener\">JavaFX<\/a>.<\/p>\n<p>Avete mai usato Java Web Start? Come realizzate le vostre applicazioni desktop e soprattutto come le distribuite?<\/p>\n<p>Avanti, commentate e diteci la vostra!<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Una volta che si \u00e8 completato lo sviluppo di un&#8217;applicazione Java per uso desktop,\u00a0l&#8217;aspetto pi\u00f9 importante \u00e8&#8230;<\/p>\n","protected":false},"author":561,"featured_media":13559,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[1526,1909,1908,1910,1911,1658],"class_list":["post-12915","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorial-pratici","tag-java","tag-java-jre","tag-java-sdk","tag-java-web-start","tag-jnlp","tag-programmare-app-desktop"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12915","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/users\/561"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=12915"}],"version-history":[{"count":4,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12915\/revisions"}],"predecessor-version":[{"id":13560,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12915\/revisions\/13560"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media\/13559"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=12915"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=12915"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=12915"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}