Print Friendly, PDF & Email

Per questo tutorial che creeremo un Java powered applicazione desktop nativa con HTML GUI utilizzando netbeans e il mio computer Windows 10 in meno di 30 minuti utilizzando il codice di esempio Dukescript.

Creeremo l'applicazione nativa con Dukescript a tempo di record. Dukescript è una tecnologia lato client basata in Java e principalmente su JavaFx per fornire un backend con Java e un frontend con HTML5.

Si dovrebbe avere Inno e Wix Toolset per creare l'app e il programma di installazione direttamente dal file pom maven.

Per installare Inno Setup:

  1. Scarica ispack-5.5.3.exe dalla pagina download di Inno Setup.
  2. Fare doppio clic sul file per avviare il programma di installazione.
  3. Accettare il contratto di licenza di Inno Setup e fare clic su Avanti.
  4. Seguire le istruzioni della procedura guidata di installazione per l'installazione di Inno Setup.

Per installare WiX:

  1. Scaricare wix37.exe dalla WiX Toolset – pagina di Download.
  2. Fare doppio clic sul file per avviare il programma di installazione.
  3. Seguire le istruzioni della procedura guidata di installazione per l'installazione di WiX.

È necessario installare il plugin "Dukescript progetto wizzard" e poi

Aggiungere la variabile di sistema Path Inno Setup e/o WiX:

  1. Su Windows 7, selezionare Start > Computer > proprietà del sistema > impostazioni di sistema avanzate.
  2. Selezionare la scheda Avanzate e fare clic sul pulsante variabili di ambiente.
  3. Nel riquadro variabili di sistema, fare doppio clic sulla variabile Path.
  4. Nella finestra di dialogo Modifica variabile di sistema, aggiungere un punto e virgola seguito da un nuovo percorso nel campo valore variabile (ad esempio C:Program Files (x86) Inno Setup 5 o C:Program Files (x86) WiX v3.6bin Toolset).
  5. Fare clic su OK per chiudere tutte le finestre di dialogo aperte.

Dukescript App Native Packaging

Creare una nuova applicazione di dukescript da nuovo progetto wizzard e utilizzare il progetto di esempio hello world con knockout

nuovo progetto di dukescript

 

il nome nativeds

dettagli di artefatto

Nessun visori selezionato così unica versione di javafx sarà avalible. Genererà tre progetti, il progetto generale, il progetto di javafx e il progetto di librerie javascript

dukescript progetti su netbeans

Aggiungere un plugin pom file di maven generati presso http://javafx-maven-plugin.github.io/

tag: Maven plugin:

<plugin></plugin>
    <groupId>com.zenjava</groupId>
    <artifactId>JavaFX-maven-plugin</artifactId>
    <version>8.1.4</version>
    <configuration></configuration>
        <mainClass>org.javapro.nativeds.Main</mainClass>
        <verbose>true</verbose>
        <vendor>javapro.org</vendor>
        <nativeReleaseVersion>0.1</nativeReleaseVersion>
        <additionalAppResources>${project.basedir}/src/main/webapp</additionalAppResources>
 
    <executions></executions>
        <execution></execution>
            <!-- required before build-native -->
            <id>creare-jfxjar</id>
            <phase>pacchetto</phase>
            <goals></goals>
                <goal>compilazione-vaso</goal>
 
 
        <execution></execution>
            <id>creare-nativo</id>
            <phase>pacchetto</phase>
            <goals></goals>
                <goal>compilazione nativa</goal>
 
 
 
 

Il risultato finale sarà simile a questo:

consigliati app nativa

 

Completo POM di progetto client

<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"></project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
         xsi: schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" &gt;
    <modelVersion>4.0.0</modelVersion>

    <parent></parent>
        <groupId>org.javapro</groupId>
        <artifactId>nativeds-pom</artifactId>
        <version>1,0-SNAPSHOT</version>
 

    <groupId>org.javapro</groupId>
    <artifactId>nativeds</artifactId>
    <version>1,0-SNAPSHOT</version>
    <packaging>Bundle</packaging>

    <name>nativeds codice Client generale</name>

    <properties></properties>
        <netbeans.compile.on.save>tutti i</netbeans.compile.on.save>
        <project.mainclass>org.javapro.nativeds.Main</project.mainclass>
        <exec.java.bin>${java.home}/bin/java</exec.java.bin>
        <exec.debug.arg>-/DDEBUG = false</exec.debug.arg>
 
    <build></build>
        <plugins></plugins>
            <plugin></plugin>
                <groupId>org.Apache.Felix</groupId>
                <artifactId>Maven-bundle-plugin</artifactId>
                <version>2.4.0</version>
                <extensions>true</extensions>
                <configuration></configuration>
                    <instructions></instructions>
                        <Export-Package>org.javapro.nativeds</Export-Package>
                        <Bundle-SymbolicName>org.javapro.nativeds</Bundle-SymbolicName>
 
 
 
            <plugin></plugin>
                <groupId>org.Apache.Maven.plugins</groupId>
                <artifactId>Maven-compilatore-plugin</artifactId>
                <version>2.3.2</version>
                <configuration></configuration>
                    <source>1.7</source>
                    <target>1.7</target>
 
 
            <plugin></plugin>
                <groupId>org.Apache.Maven.plugins</groupId>
                <artifactId>Maven-surefire-plugin</artifactId>
                <version>2.19.1</version>
                <configuration></configuration>
                    <junitArtifactName>com.dukescript.API:JUnit-osgi</junitArtifactName>
                    <systemPropertyVariables></systemPropertyVariables>
                        <fxpresenter.headless>true</fxpresenter.headless>
 
 
 
            <plugin></plugin>
                <groupId>org.Apache.Maven.plugins</groupId>
                <artifactId>Maven-vaso-plugin</artifactId>
                <version>2.4</version>
                <configuration></configuration>
                    <archive></archive>
                        <manifest></manifest>
                            <mainClass>${project.mainclass}</mainClass>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib /</classpathPrefix>
                            <useUniqueVersions>false</useUniqueVersions>
 
 
 
 
            <plugin></plugin>
                <artifactId>Maven-fonte-plugin</artifactId>
                <version>2.2.1</version>
                <executions></executions>
                    <execution></execution>
                        <id>allegare-fonti</id>
                        <phase>test di post integration</phase>
                        <goals></goals>
                            <goal>vaso-no-forcella</goal>
 
 
 
 
            <plugin></plugin>
                <groupId>org.codehaus.Mojo</groupId>
                <artifactId>Exec-maven-plugin</artifactId>
                <version>1.2.1</version>
                <configuration></configuration>
                    <executable>${exec.java.bin}</executable>
                    <classpathScope>prova</classpathScope>
                    <arguments></arguments>
                        <argument>-classpath</argument>
                        <classpath></classpath>
                        <argument>-javaagent:${Project.Build.directory}/Springloaded.jar</argument>
                        <argument>-noverify</argument>
                        <argument>-Dbrowser.RootDir=${basedir}/src/main/webapp/</argument>
                        <argument>-Dnetbeans.inspect.port=${netbeans.inspect.port}</argument>
                        <argument>${exec.debug.arg}</argument>
                        <argument>${project.mainclass}</argument>
 
 
 
            <plugin></plugin>
                <groupId>org.Apache.Maven.plugins</groupId>
                <artifactId>Maven-dipendenza-plugin</artifactId>
                <version>2.10</version>
                <executions></executions>
                    <execution></execution>
                        <id>copia</id>
                        <phase>pacchetto</phase>
                        <goals></goals>
                            <goal>copia</goal>
 
                        <configuration></configuration>
                            <artifactItems></artifactItems>
                                <artifactItem></artifactItem>
                                    <groupId>org. springframework</groupId>
                                    <artifactId>Springloaded</artifactId>
                                    <version>1.2.3.RELEASE</version>
                                    <type>vaso</type>
                                    <overWrite>false</overWrite>
                                    <destFileName>Springloaded.jar</destFileName>
 
 
                            <outputDirectory>${project.build.directory}</outputDirectory>
 
 
 
 
            <plugin></plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.4</version>
                <executions></executions>
                    <execution></execution>
                        <id>pagine Web</id>
                        <phase>pacchetto</phase>
                        <goals></goals>
                            <goal>singola</goal>
 
                        <configuration></configuration>
                            <descriptors></descriptors>
                                <descriptor>src/main/assembly/WebPages.XML</descriptor>
 
 
 
 
 
 
 
    <dependencies></dependencies>
        <dependency></dependency>
            <groupId>org.NetBeans.html</groupId>
            <artifactId>NET.Java.html</artifactId>
            <version>${net.java.html.version}</version>
 
        <dependency></dependency>
            <groupId>org.NetBeans.html</groupId>
            <artifactId>NET.Java.html.JSON</artifactId>
            <version>${net.java.html.version}</version>
 
        <dependency></dependency>
            <groupId>org.NetBeans.html</groupId>
            <artifactId>NET.Java.html.boot</artifactId>
            <version>${net.java.html.version}</version>
 
        <dependency></dependency>
            <groupId>org.NetBeans.html</groupId>
            <artifactId>NET.Java.html.Sound</artifactId>
            <version>${net.java.html.version}</version>
 
        <dependency></dependency>
            <groupId>org.NetBeans.html</groupId>
            <artifactId>ko4j</artifactId>
            <version>${net.java.html.version}</version>
            <scope>Runtime</scope>
 
        <dependency></dependency>
            <groupId>org.javapro</groupId>
            <artifactId>nativeds-js</artifactId>
            <version>${Version}</version>
 
        <dependency></dependency>
            <groupId>org.NetBeans.html</groupId>
            <artifactId>NET.Java.html.boot.FX</artifactId>
            <version>${net.java.html.version}</version>
            <scope>fornito</scope>
 

        <dependency></dependency>
            <groupId>com.dukescript.API</groupId>
            <artifactId>JUnit-osgi</artifactId>
            <scope>prova</scope>
 
        <dependency></dependency>
            <groupId>com.dukescript.API</groupId>
            <artifactId>JUnit-browser-corridore</artifactId>
            <version>${junit.browser.version}</version>
            <scope>prova</scope>
            <type>vaso</type>
 

        <!-- Nashorn presenter for BrowserRunner
        <dependency></dependency>
          <groupId>org.NetBeans.html</groupId>
          <artifactId>NET.Java.html.boot.script</artifactId>
          <version>${net.java.html.version}</version>
          <scope>prova</scope>
          <type>vaso</type>
 
        -->
 
    <profiles></profiles>
        <profile></profile>
            <id>desktop</id>
            <dependencies></dependencies>
                <dependency></dependency>
                    <groupId>org.NetBeans.html</groupId>
                    <artifactId>NET.Java.html.boot.FX</artifactId>
                    <version>${net.java.html.version}</version>
                    <scope>Runtime</scope>
 
 
            <build></build>
                <plugins></plugins>
                    <plugin></plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <version>2.4</version>
                        <executions></executions>
                            <execution></execution>
                                <id>distro-Assemblea</id>
                                <phase>pacchetto</phase>
                                <goals></goals>
                                    <goal>singola</goal>
 
                                <configuration></configuration>
                                    <descriptors></descriptors>
                                        <descriptor>src/main/assembly/JavaFX.XML</descriptor>
 
 
 
 
 
                    <plugin></plugin>
                        <groupId>com.zenjava</groupId>
                        <artifactId>JavaFX-maven-plugin</artifactId>
                        <version>8.1.4</version>
                        <configuration></configuration>
                            <mainClass>org.javapro.nativeds.Main</mainClass>
                            <verbose>true</verbose>
                            <vendor>javapro.org</vendor>
                            <nativeReleaseVersion>0.1</nativeReleaseVersion>
                            <additionalAppResources>${project.basedir}/src/main/webapp</additionalAppResources>
 
                        <executions></executions>
                            <execution></execution>
                                <!-- required before build-native -->
                                <id>creare-jfxjar</id>
                                <phase>pacchetto</phase>
                                <goals></goals>
                                    <goal>compilazione-vaso</goal>
 
 
                            <execution></execution>
                                <id>creare-nativo</id>
                                <phase>pacchetto</phase>
                                <goals></goals>
                                    <goal>compilazione nativa</goal>
 
 
 
 
 
 
 
 
 

 

¡Complimenti! Se hai raggiunto questo lontano significa che ora è possibile creare un'applicazione nativa con tecnologia Dukescript.

Radio

Do NOT follow this link or you will be banned from the site!