gpt4 book ai didi

java - 如何手动安装 java 库并将/tmp 保持为 noexec?

转载 作者:IT王子 更新时间:2023-10-29 00:25:51 24 4
gpt4 key购买 nike

我正在尝试在需要在 /tmp 上安装 noexec 的盒子上运行 android sdk。

我可以将 java tmp 指向另一个我可以执行的地方,但这会破坏警察要求在 tmp 中执行 noexec 的目的。所以我现在还不想这样做。

我想正确安装 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)

我第一次尝试解决这个问题是:

$ 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) ...

但我仍然得到同样的错误。这是否意味着该程序不是在寻找默认库,而是故意尝试使用它在/tmp 上解压的东西?或者 java 是否会始终在/tmp 中解压一个 jar,并尝试从那里运行它,但我无能为力?

编辑:清除 noexec 是原因。如果我使用 -Djava.io.tmpdir=Android/tmp 运行应用程序,那么一切正常。我在新的 tmp 目录中有以下内容:

Android/tmp/
└── swtlib-64
├── libswt-gtk-3550.so
└── libswt-pi-gtk-3550.so

编辑 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...

最佳答案

我相信如果您使用 chown 将 android sdk 工具文件夹(在/opt 中)更改为可写,那么解包将在 sdk 文件夹中进行。您可以通过创建“androidsdk”组来完成此操作。

关于java - 如何手动安装 java 库并将/tmp 保持为 noexec?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32443996/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com