سؤال

أحاول أن أتعلم سبحانه وتعالى، وأستخدم maven في جميع تصميماتي وEclipse في IDE الخاص بي.عند إخراج الجرار سبحانه وتعالى من مستودع مافن، أحصل على:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-pi-gtk-3034 in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1709)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1030)
    at org.eclipse.swt.internal.Library.loadLibrary(Library.java:100)
    at org.eclipse.swt.internal.gtk.OS.<clinit>(OS.java:19)
    at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:63)
    at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:54)
    at org.eclipse.swt.widgets.Display.<clinit>(Display.java:112)
    at wenzlick.test.swt.main.Main.main(Main.java:30)

هل نجح أي شخص في الحصول على تطبيق swt للإنشاء والتشغيل باستخدام maven؟

يحرر:لقد أجريت القليل من البحث ووجدت المشكلة.انظر إلى منصبي أدناه

هل كانت مفيدة؟

المحلول

ويبدو وكأنه مخضرم هو سحب في نسخة قديمة من سبحانه وتعالى. اعتبارا من v3.4 (وأعلى)، وswt.jar هو جميع التي تحتاج إليها. سوف سبحانه وتعالى استخراج تلقائيا .so.jnilibs أو .dlls الضرورة. الشيء الوحيد صعبة تحتاج للقلق بشأن هو ضمان أن تحصل على swt.jar اليمين (يعني النظام الأساسي الخاص بك).

وحاول تثبيت سبحانه وتعالى 3.4 في مستودع المحلي الخاص بك عن طريق اليد. وإذا كان هذا لا يزال يوفر لك نفس المشكلة، ثم شيء هو على الارجح مريب. بعد ذلك، سوف أحاول استخراج .sos يدويا ومن ثم تحديد المتغير java.library.path باستخدام مفتاح -D على الاحتجاج. في بعض الأحيان على لينكس تحميل المكتبات يمكن أن تفشل بسبب مشاكل التبعية (في أشياء مثل libpango). في مثل هذه الحالات، وغالبا ما يكون من الخطأ مجرد UnsatisifedLinkError عام، مما يجعل المشكلة صعوبة التصحيح.

نصائح أخرى

لقد قمت بتحميل عناصر win32/64 & osx لأحدث إصدار من SWT (4.2.2) إلى مستودع googlecode، ويمكنك العثور عليه هنا:

https://swt-repo.googlecode.com/svn/repo/

لاستخدامه فقط ضع ما يلي في pom.xml الخاص بك:

<repositories>
    <repository>
        <id>swt-repo</id>
        <url>https://swt-repo.googlecode.com/svn/repo/</url>
    </repository>
</repositories>

ثم يمكنك فقط الرجوع إلى تبعية SWT ذات الصلة بالنظام الأساسي الخاص بك.على سبيل المثال:

    <dependency>
        <groupId>org.eclipse.swt</groupId>
        <artifactId>org.eclipse.swt.win32.win32.x86</artifactId>
        <version>4.2.2</version>
    </dependency>

بالنسبة للمنصات الأخرى، ما عليك سوى استبدال artifactId بالقيمة المناسبة:

  • org.Eclipse.swt.win32.win32.x86
  • org.Eclipse.swt.win32.win32.x86_64
  • org.Eclipse.swt.cocoa.macosx
  • org.Eclipse.swt.cocoa.macosx.x86_64

تتوفر أيضًا عناصر لمنصات إضافية وإصدارات أقدم، قم بزيارة رابط المستودع أعلاه للعثور عليها.

ترميز سعيد!

ومن API من UnsatisfiedLinkError

<اقتباس فقرة>   

وترتمي إذا أعلنت آلة جافا الافتراضية لا يمكن العثور على تعريف باللغة الأم المناسب لطريقة الأم.

ولم أحاول بنفسي، ولكن أعتقد أنك لا تحتاج فقط إلى تحميل جرة سبحانه وتعالى الرئيسية، ولكن دعم "الأصلي" JAR النظام الأساسي الخاص بك. على سبيل المثال سبحانه وتعالى لينكس-جتك إذا كنت على لينكس؟

واعتدت جيثب مع أحدث الاشياء الكسوف: https://github.com/maven-eclipse/maven-eclipse.github. الإعلام والتوعية . أقترح عليك قراءة ذلك.

ووpom.xml التي عملت بالنسبة لي:

<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">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.whatever</groupId>
  <artifactId>whatever</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>swt</name>
  <url>http://maven.apache.org</url>

    <repositories>
        <repository>
            <id>maven-eclipse-repo</id>
            <url>http://maven-eclipse.github.io/maven</url>
        </repository>
    </repositories>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <swt.version>4.6</swt.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
        <!-- select prefered one, or move the preferred on to the top: -->
        <dependency>
            <groupId>org.eclipse.swt</groupId>
            <artifactId>org.eclipse.swt.win32.win32.x86_64</artifactId>
            <version>${swt.version}</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.swt</groupId>
            <artifactId>org.eclipse.swt.win32.win32.x86</artifactId>
            <version>${swt.version}</version>
            <!-- To use the debug jar, add this -->
            <classifier>debug</classifier>
        </dependency>       
        <dependency>
            <groupId>org.eclipse.swt</groupId>
            <artifactId>org.eclipse.swt.gtk.linux.x86</artifactId>
            <version>${swt.version}</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.swt</groupId>
            <artifactId>org.eclipse.swt.gtk.linux.x86_64</artifactId>
            <version>${swt.version}</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.swt</groupId>
            <artifactId>org.eclipse.swt.cocoa.macosx.x86_64</artifactId>
            <version>${swt.version}</version>
        </dependency>

  </dependencies>
</project>

ولقد فعلت ذلك لمزيد من البحوث يذكر على هذا وجدت أن جرة سبحانه وتعالى هي في بضعة أماكن مختلفة في مستودع مخضرم. كنت تستخدم الجرار وضعت من قبل مجموعة سبحانه وتعالى، ولكن بعد النظر حول بعض الشيء، لقد وجدت الجرار وضعت من قبل مجموعة org.eclipse.swt.gtk.linux لينكس (org.eclipse.swt.win32.win32 ويندوز ). هذا هو للحصول على الإصدار 3.3 من سبحانه وتعالى. لا تزال تبحث عن 3.4.

ومنذ 2013 (هذا المنصب بداية السنة)، وقد تغيرت الأمور. نشرت سبحانه وتعالى الآن في سنترال مخضرم. وهنا الإحداثيات حتى كتابة هذه السطور:

<dependency>
    <groupId>org.eclipse.platform</groupId>
    <artifactId>org.eclipse.swt.win32.win32.x86_64</artifactId>
    <version>${swt.version}</version>
</dependency>

ويمكنك العثور على هذا مثيرة للاهتمام.

وأحدث المصنوعات اليدوية سبحانه وتعالى للنوافذ 64BIT: https://mvnrepository.com/artifact/org.eclipse.platform/org.eclipse.swt.win32.win32.x86_64

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top