# JavaFX App Deployment - fehlende Icons.



## Wellenbrecher (26. Mrz 2014)

Hallo zusammen,

ich hab mich seit ein paar Tagen mit JavaFX beschäftigt und eine kleine App erstellt. Daraufhin habe ich dann mit Eclipse, Ant und Inno Setup ein Installer gebaut. 

Nach erfolgreichem Build habe ich die .exe ausgeführt und konnte das Programm ohne Probleme starten. Allerdings ist mir aufgefallen, dass meine ganzen Icons fehlen, welche ich auf die Buttons gesetzt habe. Ich habe also nun gerade leere Buttons. Das dürfte aber eigentlich nicht sein und war auch in der Eclipse Umgebung auch noch nicht der Fall.

Habe ich da irgendetwas falsch gemacht beim build. Muss ich diese resources/images im build.xml deklarieren? Bin noch relativ unerfahren im Deployment.

Würde mich über eure Hilfe freuen.

Danke.


----------



## Wellenbrecher (27. Mrz 2014)

Niemand eine Idee?


----------



## chalkbag (27. Mrz 2014)

Ich kenn jetzt Inno Setup nicht.
Aber entweder wurden die Bilder nicht mit exportiert oder die Pfadangaben zu den Bildern stimmen nach dem Build nicht mehr.
Bei solchen Setups gibt du ja meisten an, was alles mit eingepackt werden muss. Ist dein Bilderordner dabei?


----------



## Wellenbrecher (27. Mrz 2014)

Danke für deine Antwort. Inno Setup erstellt mir einfach nur automatisch einen Installer.exe, wenn ich build.xml mit Ant "rennen" lassen.

Also, du meinst in der build.xml stimmt etwas nicht? Das wäre meine build.xml


```
<?xml version="1.0" encoding="UTF-8"?>
	<project name="StockApp" default="do-deploy" basedir="."  xmlns:fx="javafx:com.sun.javafx.tools.ant">
	<target name="init-fx-tasks">
		<path id="fxant">
			<filelist>
				<file name="${java.home}\..\lib\ant-javafx.jar"/>
				<file name="${java.home}\lib\jfxrt.jar"/>
			</filelist>
		</path>
	
		<taskdef resource="com/sun/javafx/tools/ant/antlib.xml"      
			uri="javafx:com.sun.javafx.tools.ant"
			classpathref="fxant"/>
	</target>
	<target name="setup-staging-area">
		<delete dir="externalLibs" />
		<delete dir="project" />
		<delete dir="projectRefs" />
		
		<mkdir dir="externalLibs" />
		
		<copy todir="externalLibs">
			<fileset dir="C:\Users\Name\Documents\Proggen\StockApp\lib">
				<filename name="javafx-dialogs-0.0.1.jar"/>	
			</fileset>
		</copy>
		<copy todir="externalLibs">
			<fileset dir="C:\Users\Name\Documents\Proggen\StockApp\lib">
				<filename name="xmlpull-1.1.3.1.jar"/>	
			</fileset>
		</copy>
		<copy todir="externalLibs">
			<fileset dir="C:\Users\Name\Documents\Proggen\StockApp\lib">
				<filename name="xstream-1.4.3.jar"/>	
			</fileset>
		</copy>
		<copy todir="externalLibs">
			<fileset dir="C:\Users\Name\Documents\Proggen\StockApp\lib">
				<filename name="xpp3_min-1.1.4c.jar"/>	
			</fileset>
		</copy>
		
		<mkdir dir="project" />
		<copy todir="project">
			<fileset dir="C:\Users\Name\wsFXApps\StockApp">
				<include name="src/**" />
			</fileset>
		</copy>
		
		<mkdir dir="projectRefs" />
	</target>
	<target name='do-compile'>
		<delete dir="build" />
		<mkdir dir="build/src" />
		<mkdir dir="build/libs" />
		<mkdir dir="build/classes" />
	
		<!-- Copy project-libs references -->
		<copy todir="build/libs">
			<fileset dir="externalLibs">
				<include name="javafx-dialogs-0.0.1.jar"/>
				<include name="xmlpull-1.1.3.1.jar"/>
				<include name="xstream-1.4.3.jar"/>
				<include name="xpp3_min-1.1.4c.jar"/>
			</fileset>
		</copy>
	
		<!-- Copy project references -->
	
		<!-- Copy project sources itself -->
		<copy todir="build/src">
			<fileset dir="project/src">
				<include name="**/*"/>
			</fileset>
		</copy>
	
		<javac includeantruntime="false" source="1.8" target="1.8" srcdir="build/src" destdir="build/classes" encoding="Cp1252">
			<classpath>
				<fileset dir="build/libs">
					<include name="*"/>
				</fileset>
			</classpath>
		</javac>
		
		<!-- Copy over none Java-Files -->
		<copy todir="build/classes">
		<fileset dir="project/src">
			<exclude name="**/*.java"/>
		</fileset>
		</copy>
	
	
	</target>
	<target name="do-deploy" depends="setup-staging-area, do-compile, init-fx-tasks">
		<delete file="dist"/>
		<delete file="deploy" />
		
		<mkdir dir="dist" />
		<mkdir dir="dist/libs" />
		
		<copy todir="dist/libs">
			<fileset dir="externalLibs">
				<include name="*" />
			</fileset>
		</copy>
		
		
		<fx:resources id="appRes">
			<fx:fileset dir="dist" includes="StockApp.jar"/>
			<fx:fileset dir="dist" includes="libs/*"/>
		</fx:resources> 
		
		<fx:application id="fxApplication"
			name="StockApp"
			mainClass="ch.makery.address.MainApp"
		/>
	
		<mkdir dir="build/classes/META-INF" />
		
		
		
		<fx:jar destfile="dist/StockApp.jar">
			<fx:application refid="fxApplication"/>
			<fileset dir="build/classes">
			</fileset>
			<fx:resources refid="appRes"/>
			
			<manifest>
				<attribute name="Implementation-Vendor" value="Name"/>
				<attribute name="Implementation-Title" value="StockApp"/>
				<attribute name="Implementation-Version" value="0.9"/>
				<attribute name="JavaFX-Feature-Proxy" value="None"/>
			</manifest>
		</fx:jar>
		
	
		<mkdir dir="deploy" />
		<!-- Need to use ${basedir} because somehow the ant task is calculating the directory differently -->
		<fx:deploy
			embedJNLP="false"
			extension="false"
			includeDT="false"
			offlineAllowed="true"
			outdir="${basedir}/deploy"
			outfile="StockApp" nativeBundles="exe"
			updatemode="background" >
	
			<fx:info title="StockApp" vendor="Name"/>
			<fx:application refId="fxApplication"/>
			<fx:resources refid="appRes"/>
		</fx:deploy>
		
		
	</target>
</project>
[code=Java]

Meine Projektstruktur ist:

StockApp
    src
 ----Pakete mit Klassen&FXML
    build
    lib
    resources
 ----images
 ----hier befinden sich die Iconbilder


Hilft das? Ist ein Fehler auffindbar?
```


----------

