Jar-файл не может найти библиотеку SWT, но Eclipse может - PullRequest
0 голосов
/ 02 июля 2018

У меня есть Ant сборка (см. build.xml ниже), которая компилируется и работает, как я ожидаю, в Eclipse.

Однако, когда я запускаю сборку из командной строки (java -jar swtgui.jar), я получаю следующую ошибку:

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Layout
        at java.lang.Class.getDeclaredMethods0(Native Method)
        ...
        etc

build.xml

 <?xml version="1.0" encoding="UTF-8"?>

 <project default="run" name="My Project ">

 <target name="run" depends="createjar">
  <java classname="com.company.program.project.MyMainClass">
    <classpath path="staging">
      <fileset dir="C:\COMPANY\Eclipse\3.6-64\plugins">
        <include name="org.eclipse.swt.*.jar" />
      </fileset>
    </classpath>
   </java>
  </target>

 <target name="createjar" depends="compile">
  <jar destfile="./builds/jars/swtgui.jar" basedir="staging" filesetmanifest="mergewithoutmain">
      <manifest>
         <attribute name="Main-Class" value="com.company.program.project.MyMainClass" />
      </manifest>

    <fileset dir="C:\COMPANY\Eclipse\3.6-64\plugins\"     includes="org.eclipse.swt.win32.win32.x86_64_3.6.0.v3650b.jar" />
  </jar>
 </target>

<target name="compile">
    <javac includeantruntime="false" srcdir="./src" destdir="staging">
       <classpath>
            <fileset dir="C:\COMPANY\Eclipse\3.6-64\plugins">
              <include name="org.eclipse.swt.*.jar" />
            </fileset>
        </classpath>
    </javac>

</target>

<record name="./MyMainClass.log" loglevel="verbose" action="start"/>

Ошибка не имеет смысла для меня, поскольку я указываю тот же путь к библиотеке SWT для цели compile, что и для цели createjar.

Если библиотека SWT найдена для цели compile, почему она не найдена для цели createjar?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...