标签: java

如何让 Oracle java 7 与 setcap cap_net_bind_service+ep 一起使用

我试图授予 java 可执行文件在 Linux 上打开 1024 以下端口的权利。这是设置

  • /home/test/java 包含 Oracle Server JRE 7.0.25
  • CentOS 6.4

这是 getcap 返回的内容

[test@centos6 java]$ pwd
/home/test/java

[test@centos6 java]$ getcap bin/java
bin/java = cap_net_bind_service+ep

[test@centos6 java]$ getcap jre/bin/java
jre/bin/java = cap_net_bind_service+ep
Run Code Online (Sandbox Code Playgroud)

尝试执行 java 会出现以下错误。

[test@centos6 java]$ bin/java
bin/java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory
[test@centos6 java]$ jre/bin/java
jre/bin/java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

当二进制文件被 …

linux security administration java setcap

11
推荐指数
1
解决办法
2万
查看次数

如何在 Debian 12(书虫)上安装 Java 8?

在 Debian 11 下,我们通常使用 Adoptopenjdk.net 上的 OpenJDK。

该组织将不再提供新版本: https: //adoptopenjdk.jfrog.io/ui/native/deb/dists/

有没有办法在 Debian 12 上安装 Java 8 JDK (而不是运行时)?

debian java jdk openjdk

11
推荐指数
2
解决办法
1万
查看次数

在 Ubuntu 中设置或获取 $JAVA_HOME 的系统范围方法?

我想知道 Ubuntu 本身是否提供了一种系统范围的方式来查找当前文件,JAVA_HOME或者是否有合适的地方设置JAVA_HOME.

Mac OS X 在这方面做得很好,因为/usr/libexec/java_home命令返回当前的JAVA_HOME. 但是对于 Ubuntu,我找到的材料总是告诉我将$JAVA_PATH指向设置为静态路径,该路径存储在~/.bash_profile.

但是,我认为这种方法有几个缺点:

  1. 一旦 Java 更新,迷你版本号就会改变,这使得静态路径不再可用。
  2. 使用 更改我系统中使用的 JRE 后update-alternatives,我必须$JAVA_HOME.bash_profile. 额外的工作很烦人。
  3. 一些$JAVA_HOME必需的程序,根本不知道.bash_profile。我必须$JAVA_HOME在他们的启动脚本中进行设置,因此一种标准且简单的获取方式$JAVA_HOME对我来说似乎很重要。

好吧,欢迎任何建议。谢谢。

ubuntu path java

10
推荐指数
1
解决办法
1万
查看次数

将 jar 文件的文件夹添加到我的路径

我有需要使用的 Java 工具。这些工具位于一个装满 jar 文件的文件夹中。出于显而易见的原因,我想将此文件夹添加到我的路径中,但是在我编辑 .bash_profile 以将新文件夹包含在 $PATH 变量中并获取它之后,它不起作用。我也试过注销,然后重新登录,这也不起作用。我只是不断收到错误消息“无法访问 jarfile .jar”

path java

10
推荐指数
1
解决办法
4万
查看次数

如何在 CentOS 上正确设置 JAVA_HOME?

我正在尝试设置JAVA_HOME,以便我可以在本教程的帮助下安装 Apache Solr。我使用连接到我的服务器的SSHroot用户

要允许正在运行的 sh 脚本安装 Apache Solr:

mount | grep noexec
Run Code Online (Sandbox Code Playgroud)

使用 exec 选项重新挂载文件系统:

mount -o remount,exec /dev/md1
Run Code Online (Sandbox Code Playgroud)

然后每次我尝试使用以下命令安装它时

bin/install_solr_service.sh /tmp/solr-5.3.1.tgz
Run Code Online (Sandbox Code Playgroud)

我收到以下消息:

WARNING: /opt/solr-5.3.1 already exists! Skipping extract ...

Creating /etc/init.d/solr script ...
The currently defined JAVA_HOME (/usr/local/jdk) refers
to a location where Java could not be found.  Aborting.
Either fix the JAVA_HOME variable or remove it from the
environment so that the system PATH will be searched.
The currently …
Run Code Online (Sandbox Code Playgroud)

centos java jdk

10
推荐指数
2
解决办法
8万
查看次数

向 Java 应用程序添加根证书颁发机构

我已经在 CentOS7 上安装了 Jenkins,并且在尝试更新/安装插件时遇到了 SSL 错误。经过一番调查,结果发现我在 Java CA 存储中缺少根 CA 证书。

我使用该keytool实用程序将缺少的 CA 证书添加到 Java CA 存储中并且它起作用了。但是,我觉得必须篡改它很烦人。

有没有办法让Java继承系统信任的根CA证书?如果是,如何?

fedora centos java ssl certificates

10
推荐指数
1
解决办法
2万
查看次数

仅适用于一位用户的更新替代品

我正在使用共享服务器。在该服务器上安装了不同版本的 Java:

  Selection    Path                                      Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      auto mode
* 1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-6-sun/jre/bin/java       63        manual mode
Run Code Online (Sandbox Code Playgroud)

我想选择第二个选项,但如果我尝试这样做,它会抱怨我没有权限(我不是 root)。

有没有办法在“用户空间”中做到这一点?

Root 用户可以让这个首选项只对我有用吗?

debian java executable not-root-user alternatives

9
推荐指数
1
解决办法
4951
查看次数

允许 Java 7 在 SELinux 上运行的安全方法是什么

简短版本: 允许 Java 7 在(与?)SELinux 上运行的最安全方式是什么?

长版:

如果我使用了不正确的术语,请提前抱歉。我真的只是一名 Java 开发人员,对 Linux 技能知之甚少。

我刚刚在 CentOS 5.3 版(最终版)上安装了 Java 7,它显然具有安全增强的 Linux。安装完成后(我通过从 Oracle 中解压缩 tar.gz 文件来“安装” /usr/java/jdk/jdk1.7.0_25),我运行java -version并得到这个错误:

Error: dl failure on line 864
Error: failed /usr/java/jdk1.7.0_25/jre/lib/i386/server/libjvm.so,
      because /usr/java/jdk1.7.0_25/jre/lib/i386/server/libjvm.so:
      cannot restore segment prot after reloc: Permission denied`
Run Code Online (Sandbox Code Playgroud)

我发现一些文章指出这可能是由于 SELinux 并尝试 setenforce 0查看问题是否消失。我运行了那个命令,Java 工作了。但是这些相同的文章说,离开setenforce 0连接到 Internet 的主机是危险的,而我的主机已连接到 Internet。

还有其他文章提出了下一种方法,但也说它可能很危险,所以我还没有尝试过。

chcon -t textrel_shlib_t /usr/jre1.7.0_10/lib/i386/client/libjvm.so
Run Code Online (Sandbox Code Playgroud)

...在上面的命令中,命令末尾的路径替换为我的 JDK 路径。

我找不到关于如何安全地在(使用?)SELinux 上运行 Java 7 的“官方”(这可能意味着很多事情)。有没有人有任何信息给我?

编辑: 我发现了一篇提到编辑/etc/selinux/config. 我已设置如下示例所示。这允许 Java 运行,但我认为我现在有一些安全漏洞。 …

linux selinux java

9
推荐指数
1
解决办法
6156
查看次数

使用不同的java版本运行两个程序

我在我的新 CentOS 上安装了两个 JAVA JRE,因为 Cassandra 需要 java7u25 或更高版本,而 iReport 需要使用 1.6。

现在如何从命令行启动每个程序,告诉每个程序使用哪个版本?

我必须更改/etc/profile文件吗?如果是这样怎么办?

centos java jdk

9
推荐指数
1
解决办法
2万
查看次数

jetbrains-toolbox 加载到空白屏幕

在过去一个月左右的时间里,我一直在尝试让 jetbrains-toolbox 工作。它曾经可以工作(也是我安装 IntelliJ IDEA 和 Gogland 的方式。)当我去更新 IDEA 时

我目前正在使用 Arch。这是我尝试过的事情。

  1. 从 Sway 中加载 jetbrains-toolbox。
  2. 从 aur 重新安装 jetbrains-toolbox。
  3. 从 Jetbrains 网站重新安装 jetbrains-toolbox。
  4. 使用 --disable-gpu 启动它
  5. 清除 ~/.local/share/JetBrains/Toolbox
  6. 谷歌搜索我收到的所有消息。
  7. 在不同的 DE 中加载 jetbrains-toolbox。我尝试了 GNOME、KDE ​​和 i3。

设置文件 (~/local/share/JetBrains/Toolbox/.settings.json),即使在被第 5 项操作清除后,也能够重新生成,所以我假设我的文件系统上某处存在某些东西不走了。这就是我认为可能导致问题的原因。我已经通过查看 Thunar 的垃圾文件夹验证了设置文件已被删除。但是,从 ripgrep 搜索我的电子邮件地址(包含在设置文件中)并没有发现任何相关信息。

这些是我运行的命令:

  1. cd ~/ sudo rg --hidden "MY_EMAIL_HERE" >> ~/Desktop/home_search.txt
  2. cd /usr/ sudo rg --hidden "MY_EMAIL_HERE" >> ~/Desktop/home_search.txt

唯一相关的结果是: .local/share/JetBrains/Toolbox/.settings.json: "email": "MY_EMAIL_HERE", .local/share/Trash/files/Toolbox/.settings.json: "email": "MY_EMAIL_HERE",

我并不完全精通 Linux,但我一直在寻求帮助。如果您有任何建议,请耐心等待我。我可能有点傻。

当我从终端运行它时,这是显示的消息:

john@john ~/D/jetbrains-toolbox-1.2.2314> ./jetbrains-toolbox [0415/155414:WARNING:resource_bundle.cc(311)] locale_file_path.empty() for locale

这是一条偶尔会 …

arch-linux java troubleshooting

9
推荐指数
2
解决办法
6214
查看次数