Eclipse에서 SWT 라이브러리를 로드할 수 없음
Ubuntu 12.04에서 Eclipse를 열려고 할 때마다 Unsenced Link Error가 발생하는데 열리지 않는다.최근에 Java JDK와 Android SDK를 설치했는데, 이게 문제일까?나는 이 튜토리얼을 따라 했다.
로그 정보:
!SESSION 2012-04-15 21:05:46.902 -----------------------------------------------
eclipse.buildId=I20110613-1736
java.version=1.7.0
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_GB
Command-line arguments: -os linux -ws gtk -arch x86_64
!ENTRY org.eclipse.osgi 4 0 2012-04-15 21:05:47.885
!MESSAGE Application error
!STACK 1
java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
no swt-gtk-3740 in java.library.path
no swt-gtk in java.library.path
Can't load library: /home/tom/.swt/lib/linux/x86_64/libswt-gtk-3740.so
Can't load library: /home/tom/.swt/lib/linux/x86_64/libswt-gtk.so
at org.eclipse.swt.internal.Library.loadLibrary(Library.java:285)
at org.eclipse.swt.internal.Library.loadLibrary(Library.java:194)
at org.eclipse.swt.internal.C.<clinit>(C.java:21)
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:132)
at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:695)
at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:161)
at org.eclipse.ui.internal.ide.application.IDEApplication.createDisplay(IDEApplication.java:153)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:95)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
제거 및 재설치 및 제거 작업을 수행해 보았다.~/.eclipse
디렉토리가 있지만 여전히 작동하지 않음
우분투 12.04 32비트.명령을 편집하여 다음 작업을 수행하십시오.
ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86/
Ubuntu 12.04 64비트에서 다음을 시도해 보십시오.
ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86_64/
해결됨:
Oracle Java 7을 설치했기 때문에 기본 Java를 Oracle Java 7로 변경했지만 Open JDK가 필요했다.
수정하려면 터미널을 열고 입력하십시오.
sudo update-alternatives --config java
이것은 다른 종류의 자바 목록을 보여준다.JDK 열기를 선택하십시오.
라이브러리의 경로를 지정하십시오.
echo "-Djava.library.path=/usr/lib/jni/" >> /etc/eclipse.ini
내 경우, 나는 그 일을 놓치고 있었다./usr/lib/jni
전부 명부에 기입하다고정자
sudo apt-get install libswt-gtk-3-jni libswt-gtk-3-java
나중에 symlink할 필요 없음.이클립스는 정상적으로 시작되었다.
WSL(Windows Subsystem for Linux)의 경우
apt install libswt-gtk-4-jni
OpenJDK 8이 없는 경우에도
apt install openjdk-8-jdk
라이브러리를 로드할 수 없음: /home/tom/.swt/lib/lib/x86_64/libswt-gtk-3740.so라이브러리를 로드할 수 없음: /home/tom/.swt/lib/리눅스/x86_64/libswt-gtk그렇게
라이브러리가 .swt/lib/lib/lib/x86_64/ 없을 경우 다음 명령을 사용해 보십시오.
libswt-gtk를 찾으십시오.그렇게
라이브러리가 전체 디렉토리를 /home/tom/.swt/lib/lib/x86_64에 복사해야 함
나는 스콧의 말에 동의한다. 그가 열거한 것이 효과가 있었다.그러나 어떤 디렉토리에서만 실행해도 소용이 없었다./home/*/.swt/lib/linux/x86_64/ 0 파일에 CD를 넣어야 했다.
먼저 디렉터리를 지정한 다음 링크 명령을 실행하십시오.
32비트의 경우:
ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86/
Ubuntu 12.04 64비트에서는
ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86_64/
Redhat7:
yum install gtk2 libXtst xorg-x11-fonts-Type1
그 일을 해냈어, 의존성 때문에.
여기서 발견됨
오라클 Java를 사용하여 월식을 시작하면 일식이 SWT 또는 SVN 라이브러리와 같은 네이티브 라이브러리를 찾지 못할 수 있다.SWT-JNI 라이브러리는 /usr/lib/jni/에 위치하며 SVN-JNI 라이브러리는 /usr/lib/x86_64-리눅스-gnu/jni/에 위치한다.
명령으로 일식을 시작하는 대신
eclipse
명령어를 사용할 수 있다.
env LD_LIBRARY_PATH=/usr/lib/jni/:/usr/lib/x86_64-linux-gnu/jni/:$LD_LIBRARY_PATH eclipse
환경변수 LD_LIBRARY_PATH를 일식으로 전달한다.이클립스는 원주민 도서관을 찾아 제대로 운영될 것이다.
64비트 Linux에서 32비트 Eclipse 빌드를 시작하려고 할 때 이 오류가 발생했어.문제는 ia32-libs 패키지를 설치한 뒤 해결됐다.
나는 데비안 리눅스 amd64를 하고 있다.나는 오라클의 자바 다운로드 페이지에서 오라클의 Java 11을 설치했다.eclipse.org에서 일식 설치.실행 일식은 "로드할 수 없는 swt" 오류를 발생시켰다.나는 아토라스의 충고를 따라 했다.apt install libswt-gtk-4-jni
(그것은 또한 많은 다른 것들을 설치했다) 그리고 그 일식이 시작된 후에.비록 그것이 시작되었지만 나는 다음과 같은 오류/경고를 받았다.
org.eclipse.m2e.logback.configuration: The org.eclipse.m2e.logback.configuration bundle was activated before the state location was initialized. Will retry after the state location is initialized.
SWT SessionManagerDBus: Failed to connect to org.gnome.SessionManager: Failed to execute child process “dbus-launch” (No such file or directory)
SWT SessionManagerDBus: Failed to connect to org.xfce.SessionManager: Failed to execute child process “dbus-launch” (No such file or directory)
org.eclipse.m2e.logback.configuration: Logback config file: /home/rusty/eclipse-workspace/.metadata/.plugins/org.eclipse.m2e.logback.configuration/logback.1.16.0.20200318-1040.xml
org.eclipse.m2e.logback.configuration: Initializing logback
SWT Webkit: Warning, You are using an old version of webkitgtk. (pre 2.4) BrowserFunction functionality will not be avaliable
SWT WebKit: error initializing DBus server, dBusServer == 0
SWT.CHROMIUM style was used but chromium.swt gtk (or CEF binaries) fragment/jar is missing.
나는 그 모든 것이 아니더라도 대부분의 것을 무시할 수 있다고 생각한다.윈도우 pc에서 mobaXterm을 사용하여 리눅스 박스에 ssh를 하고 있어서, 내 pc에 mobaXterm을 표시한다.내 리눅스 박스는 머리가 없다.
홈 파티션이 실행 가능한 사용 권한으로 마운트되었는지 확인하십시오.기본 설정이지만 실행 옵션 없이 마운트할 경우 이 오류가 발생할 수 있다.
보다 일반적인 방법은 다음과 같다.
- openjdk의 비헤드 버전을 설치한다.
- 일식을 설치, 실행 및 닫다
- openjdk를 제거하다.
- Oracle의 JDK 설치
JDK 32비트를 설치했는데 그 때문에 오류가 생겼다.JDK 64비트 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html jdk-8u131-filename-x64.tar.gz(64 버전을 다운로드하십시오)를 설치하고 64비트 "inst-inst-64.tar.gz"를 다운로드하십시오.
참조URL: https://stackoverflow.com/questions/10165693/eclipse-cannot-load-swt-libraries
'programing' 카테고리의 다른 글
스레드를 만드는 것은 왜 비용이 많이 든다고 하는가? (0) | 2022.04.24 |
---|---|
CMS에서 서버측 렌더링된 콘텐츠로 Vue.js에 하이드레이팅하는 방법? (0) | 2022.04.24 |
TypeORM 및 Vue 클래스 구성 요소 (0) | 2022.04.24 |
다중 라인 전처리기 매크로 (0) | 2022.04.24 |
gdb 명령 화면이 얼마나 선명하십니까? (0) | 2022.04.24 |