I used launch4j, Innosetup to create a installer of my java program. I have 6 classes. I added all the classes and required jar in launch4j. The exe get created through launch4j. I created an installer using innosetup. When I try to run the installer, the following error occurs…
Java Virtual Machine Launcher
Could not find the main class :JavaSamp the
program will exit.
Any suggestion pls
build.xml:
<project basedir="." default="build" name="JavaSamp">
<target name="build">
<mkdir dir="classes" />
<mkdir dir="install/lib" />
<jar destfile="install/lib/JavaSamp.jar" basedir="classes" />
<copy todir="install/jre6">
<fileset dir="C:\Program Files\Java\jre6">
<include name="*" />
<include name="bin/**" />
<include name="lib/**" />
<exclude name="lib/charsets.jar" />
<exclude name="lib/ext/sunjce_provider.jar" />
<exclude name="bin/rmid.exe" />
<exclude name="bin/rmiregistry.exe" />
<exclude name="bin/tnameserv.exe" />
<exclude name="bin/keytool.exe" />
<exclude name="bin/kinit.exe" />
<exclude name="bin/klist.exe" />
<exclude name="bin/ktab.exe" />
<exclude name="bin/policytool.exe" />
<exclude name="bin/orbd.exe" />
<exclude name="bin/servertool.exe" />
<exclude name="bin/java.exe" />
<exclude name="bin/javaws.exe" />
<exclude name="bin/javacpl.exe" />
<exclude name="bin/jucheck.exe" />
<exclude name="bin/jusched.exe" />
<exclude name="bin/wsdetect.dll" />
<exclude name="bin/npjava*.dll" />
<exclude name="bin/npoji610.dll" />
<exclude name="bin/regutils.dll" />
<exclude name="bin/axbridge.dll" />
<exclude name="bin/deploy.dll" />
<exclude name="bin/jpicom.dll" />
<exclude name="bin/javacpl.cpl" />
<exclude name="bin/jpiexp.dll" />
<exclude name="bin/jpinscp.dll" />
<exclude name="bin/jpioji.dll" />
<exclude name="bin/jpishare.dll" />
<exclude name="lib/deploy.jar" />
<exclude name="lib/plugin.jar" />
<exclude name="lib/deploy/messages*.properties" />
<exclude name="lib/deploy/splash.jpg" />
</fileset>
</copy>
<exec executable="C:\Program Files\Launch4j\launch4jc.exe">
<arg value="${basedir}\installerLaunch4j.xml" />
</exec>
<exec executable="C:\Program Files\Inno Setup 5\ISCC.exe">
<arg value="${basedir}\InnoSetup.iss" />
</exec>
<echo message="JavaSampSetup.exe ready" />
</target>
</project>
installerLaunch4j.xml:
<launch4jConfig>
<dontWrapJar>true</dontWrapJar>
<headerType>gui</headerType>
<jar></jar>
<outfile>install\JavaSamp.exe</outfile>
<errTitle></errTitle>
<cmdLine></cmdLine>
<chdir>.</chdir>
<priority>normal</priority>
<downloadUrl>http://java.com/download</downloadUrl>
<supportUrl></supportUrl>
<customProcName>true</customProcName>
<stayAlive>false</stayAlive>
<manifest></manifest>
<icon></icon>
<classPath>
<mainClass>JavaSamp</mainClass>
<cp>lib/DataBaseHelper.jar</cp>
<cp>lib/WriteHelper.jar</cp>
<cp>lib/FileEncryption.jar</cp>
<cp>lib/JavaDemo.jar</cp>
<cp>lib/SendEmail.jar</cp>
<cp>lib/JavaSamp.jar</cp>
<cp>lib/JavaSamp$1.jar</cp>
<cp>lib/JavaSamp$2.jar</cp>
<cp>lib/JavaSamp$3.jar</cp>
<cp>lib/JavaSamp$4.jar</cp>
<cp>lib/JavaSamp$Myemail.jar</cp>
<cp>lib/JavaSamp$Myemail$1.jar</cp>
<cp>lib/JavaSamp$Myemail$2.jar</cp>
<cp>lib/JavaSamp$Myemail$3.jar</cp>
<cp>lib/JavaSamp$Myemail$4.jar</cp>
<cp>lib/JavaSamp$OpenL.jar</cp>
<cp>lib/JavaSamp$Samp.jar</cp>
<cp>lib/JavaSamp$Samp$1.jar</cp>
<cp>lib/JavaSamp$Samp1.jar</cp>
<cp>lib/JavaSamp$Samp1$1.jar</cp>
<cp>lib/jxl-2.6.jar</cp>
<cp>lib/ant.jar</cp>
<cp>lib/sys_data.db</cp>
<cp>lib/dnsns.jar</cp>
<cp>lib/dsn.jar</cp>
<cp>lib/encrypt.data</cp>
<cp>lib/imap.jar</cp>
<cp>lib/javaws.jar</cp>
<cp>lib/jce.jar</cp>
<cp>lib/jsse.jar</cp>
<cp>lib/localedata.jar</cp>
<cp>lib/mail.jar</cp>
<cp>lib/mailapi.jar</cp>
<cp>lib/pop3.jar</cp>
<cp>lib/private.der</cp>
<cp>lib/public.der</cp>
<cp>lib/rt.jar</cp>
<cp>lib/secure.data</cp>
<cp>lib/SendEmail.jar</cp>
<cp>lib/smtp.jar</cp>
<cp>lib/sqlitejdbc-v056.jar</cp>
<cp>lib/sunjce_provider.jar</cp>
<cp>lib/sunmscapi.jar</cp>
<cp>lib/sunpkcs11.jar</cp>
<cp>lib/tools.jar</cp>
<cp>lib/unencryptedFile</cp>
<cp>sys_data.db</cp>
<cp>lib/install_details.xls</cp>
<cp>install_details.xls</cp>
</classPath>
<jre>
<path>jre6</path>
<minVersion></minVersion>
<maxVersion></maxVersion>
<jdkPreference>preferJre</jdkPreference>
</jre>
<versionInfo>
<fileVersion>1.0.0.0</fileVersion>
<txtFileVersion>1.0</txtFileVersion>
<fileDescription>JavaSamp</fileDescription>
<copyright>CopyRight (c) 2011 FSP</copyright>
<productVersion>1.0.0.0</productVersion>
<txtProductVersion>1.0</txtProductVersion>
<productName>JavaSamp</productName>
<companyName>FSP</companyName>
<internalName>JavaSamp final</internalName>
<originalFilename>JavaSamp.exe</originalFilename>
</versionInfo>
</launch4jConfig>
As an experiment, try creating a JAR file for your application, and try running it as follows:
If that works, then the problem is something to do with the way that you created that installer.
FWIW, you do not need to write
java.lang.String. JustStringwill do fine.UPDATE
That exception indicates that the class file is mangled … or more likely that it is not a Java class file at all.