2013-03-11 4 views
2

Я пытаюсь построить exe из jar-файла с помощью jWrapper. Почему я получаю ошибку, как показано ниже, при попытке генерировать exe с помощью JWrapper? Просьба помочьИсключение при использовании JWrapper

C:\Documents and Settings\Administrator>java -jar G:\IMS\jwrapper-00018512673.j 
ar G:\IMS\app.xml 
JWrapper 00018512673 
JWrapperCompiler started 
[Config] Building file is G:\IMS\app.xml 
[Updates] Checking for updates... 
java.lang.reflect.InvocationTargetException 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
     at java.lang.reflect.Method.invoke(Unknown Source) 
     at SecureRunner2.<init>(SecureRunner2.java:464) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 

     at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 

     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Sou 
rce) 
     at java.lang.reflect.Constructor.newInstance(Unknown Source) 
     at SecureRunner1.<init>(SecureRunner1.java:422) 
     at SecureRunner1.<init>(SecureRunner1.java:227) 
     at SecureRunner1.main(SecureRunner1.java:52) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
     at java.lang.reflect.Method.invoke(Unknown Source) 
     at jwrapper.launch.JWCompiler.main(JWCompiler.java:99) 
Caused by: java.lang.NullPointerException 
     at jwrapper.JWrapperCompiler.main(JWrapperCompiler.java:458) 
     ... 17 more 
[Updates] Update check: 18512673 vs 18473665 (online) 

мой app.xml файл

<JWrapper> 

    <!-- This tells JWrapper the name of your app bundle --> 
    <BundleName>MinimalApp</BundleName> 

    <!-- This bit defines a virtual app - your app bundle can have one of these or a bunch of them --> 
    <App> 

     <!-- The name of the app that launches --> 
     <Name>tx</Name> 

     <!-- The logo for the app, we automatically scale and convert it to OS specific formats --> 


     <!-- The Java main class for your app --> 
     <MainClass>ims.init.Selector</MainClass> 

     <!-- Any static parameters you want to pass in to your main method --> 
     <Param>one</Param> 
     <Param>two</Param> 

    </App> 

    <!-- This tells JWrapper what languages your app uses so JWrapper can let the user choose (if its more than one) --> 
    <SupportedLanguages>en,fr</SupportedLanguages> 

    <!-- If your app needs to run elevated (as admin) on Windows you can specify that here --> 
    <WindowsElevation>None</WindowsElevation> 

    <!-- This app installs itself for the current user, you can also install for all users or run as a temporary executable --> 
    <InstallType>CurrentUser</InstallType> 

    <!-- This is the optional update URL for the app, if the files here get updated the app will auto update--> 
    <UpdateURL>http://minimal.jwrapper.com/</UpdateURL> 



    <!-- Here's where you specify your Windows 32 bit JRE, note that you can use a 32 bit JRE on 64 bit Windows --> 
    <Windows32JRE>../windows/jre1.6.0_16</Windows32JRE> 
    <Windows64JRE>../windows/jre1.6.0_16</Windows64JRE> 
    <Linux32JRE>../linux/jre1.6.0_16</Linux32JRE> 
    <Linux64JRE>../linuxx64/jre1.6.0_16</Linux64JRE> 

    <!-- Here's where you can add JAR files or whatever else your app needs to run --> 
    <File classpath='yes'>lib/*.jar</File> 
    <File classpath='no' path='translations.properties'>resources/translation.properties</File> 

</JWrapper> 
+0

Пожалуйста, разместите свой app.xml. Я думаю, вы можете пропустить некоторые необходимые элементы. См. Http://www.jwrapper.com/sample-app-xml.html – longhua

ответ

1

была такая же проблема. В моем случае это было из JRE, которое НЕ было включено в jwrapper.jar. Я загрузил Windows JRE6 from here (читал где-то, что JRE7 не круто включать?) И скопировал полный каталог jre6 в мой каталог jwrapper. То же самое для linux от here. Windows просто 32bit, Linux 32 и 64 бит.

<!-- Here's where you specify your Windows 32 bit JRE, note that you can use a 32 bit JRE on 64 bit Windows --> 
<Windows32JRE>jre6</Windows32JRE> 
<Windows64JRE>jre6</Windows64JRE> 
<Linux32JRE>jre1.7.0_17_32</Linux32JRE> 
<Linux64JRE>jre1.7.0_17_64</Linux64JRE> 

моя проблема в том, что текущий рабочий каталог не совпадает с размещенным .exe. возможно, я смогу найти решение для этого.

+0

Появилась новая версия JWrapper, которая производит более дружественные ошибки сборки. Также JRE7 должен быть в порядке, чтобы включить - JW работает с 1,5 и выше. – AntonyM

Смежные вопросы