gcb*_*gcb 15 java linux android
我想在一个盒子,需要有运行Android SDK noexec上/tmp.
我可以指出java tmp是另一个我可以执行的地方,但那会noexec破坏tmp 中需要警察的目的.所以我不想那样做.
我想正确安装sdk所需的库,但我的java生锈了.
当我尝试运行它时,我得到:
$ Android/Sdk/tools/android
Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-gtk-3550 or swt-gtk in swt.library.path, java.library.path or the jar file
at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
at org.eclipse.swt.internal.C.<clinit>(Unknown Source)
at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source)
at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source)
at org.eclipse.swt.widgets.Display.<clinit>(Unknown Source)
at com.android.sdkmanager.Main.showSdkManagerWindow(Main.java:403)
at com.android.sdkmanager.Main.doAction(Main.java:391)
at com.android.sdkmanager.Main.run(Main.java:151)
at com.android.sdkmanager.Main.main(Main.java:117)
Run Code Online (Sandbox Code Playgroud)
我第一次尝试解决这个问题是:
$ sudo aptitude install libswt-gtk-3-java...
Selecting previously unselected package libswt-gtk-3-jni.
(Reading database ... 199270 files and directories currently installed.)
Preparing to unpack .../libswt-gtk-3-jni_3.8.2-3_amd64.deb ...
Unpacking libswt-gtk-3-jni (3.8.2-3) ...
Selecting previously unselected package libswt-gtk-3-java.
Preparing to unpack .../libswt-gtk-3-java_3.8.2-3_amd64.deb ...
Unpacking libswt-gtk-3-java (3.8.2-3) ...
Setting up libswt-gtk-3-jni (3.8.2-3) ...
Setting up libswt-gtk-3-java (3.8.2-3) ...
Run Code Online (Sandbox Code Playgroud)
但我仍然得到同样的错误.这是否意味着该程序不是在寻找默认的libs,而是故意尝试使用它在/ tmp上解压缩的东西?或者java会在/ tmp中解压缩一个jar,并尝试从那里运行它,我什么也做不了?
编辑:清除noexec原因.如果我运行应用程序-Djava.io.tmpdir=Android/tmp,那么一切正常.我在新的tmp目录中有以下内容:
Android/tmp/
??? swtlib-64
??? libswt-gtk-3550.so
??? libswt-pi-gtk-3550.so
Run Code Online (Sandbox Code Playgroud)
编辑2:
$ ANDROID_SWT=/usr/lib/java/
$ ls $ANDROID_SWT/
swt-gtk-3.8.2.jar
$ Android/Sdk/tools/android
Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-gtk-3550 or swt-gtk in swt.library.path, java.library.path or the jar file
...same...
Run Code Online (Sandbox Code Playgroud)
我相信,如果您将 android sdk 工具文件夹(在 /opt 中)更改为可以使用 进行写入chown,那么解包将在 sdk 文件夹中进行。您可以通过创建“androidsdk”组来做到这一点。