我试图授予 java 可执行文件在 Linux 上打开 1024 以下端口的权利。这是设置
/home/test/java 包含 Oracle Server JRE 7.0.25 这是 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)
当二进制文件被 …
在 Debian 11 下,我们通常使用 Adoptopenjdk.net 上的 OpenJDK。
该组织将不再提供新版本: https: //adoptopenjdk.jfrog.io/ui/native/deb/dists/
有没有办法在 Debian 12 上安装 Java 8 JDK (而不是运行时)?
我想知道 Ubuntu 本身是否提供了一种系统范围的方式来查找当前文件,JAVA_HOME或者是否有合适的地方设置JAVA_HOME.
Mac OS X 在这方面做得很好,因为/usr/libexec/java_home命令返回当前的JAVA_HOME. 但是对于 Ubuntu,我找到的材料总是告诉我将$JAVA_PATH指向设置为静态路径,该路径存储在~/.bash_profile.
但是,我认为这种方法有几个缺点:
update-alternatives,我必须$JAVA_HOME在.bash_profile. 额外的工作很烦人。$JAVA_HOME必需的程序,根本不知道.bash_profile。我必须$JAVA_HOME在他们的启动脚本中进行设置,因此一种标准且简单的获取方式$JAVA_HOME对我来说似乎很重要。好吧,欢迎任何建议。谢谢。
我有需要使用的 Java 工具。这些工具位于一个装满 jar 文件的文件夹中。出于显而易见的原因,我想将此文件夹添加到我的路径中,但是在我编辑 .bash_profile 以将新文件夹包含在 $PATH 变量中并获取它之后,它不起作用。我也试过注销,然后重新登录,这也不起作用。我只是不断收到错误消息“无法访问 jarfile .jar”
我正在尝试设置JAVA_HOME,以便我可以在本教程的帮助下安装 Apache Solr。我使用连接到我的服务器的SSH用root用户
要允许正在运行的 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) 我已经在 CentOS7 上安装了 Jenkins,并且在尝试更新/安装插件时遇到了 SSL 错误。经过一番调查,结果发现我在 Java CA 存储中缺少根 CA 证书。
我使用该keytool实用程序将缺少的 CA 证书添加到 Java CA 存储中并且它起作用了。但是,我觉得必须篡改它很烦人。
有没有办法让Java继承系统信任的根CA证书?如果是,如何?
我正在使用共享服务器。在该服务器上安装了不同版本的 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 用户可以让这个首选项只对我有用吗?
简短版本: 允许 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 运行,但我认为我现在有一些安全漏洞。 …
我在我的新 CentOS 上安装了两个 JAVA JRE,因为 Cassandra 需要 java7u25 或更高版本,而 iReport 需要使用 1.6。
现在如何从命令行启动每个程序,告诉每个程序使用哪个版本?
我必须更改/etc/profile文件吗?如果是这样怎么办?
在过去一个月左右的时间里,我一直在尝试让 jetbrains-toolbox 工作。它曾经可以工作(也是我安装 IntelliJ IDEA 和 Gogland 的方式。)当我去更新 IDEA 时
我目前正在使用 Arch。这是我尝试过的事情。
设置文件 (~/local/share/JetBrains/Toolbox/.settings.json),即使在被第 5 项操作清除后,也能够重新生成,所以我假设我的文件系统上某处存在某些东西不走了。这就是我认为可能导致问题的原因。我已经通过查看 Thunar 的垃圾文件夹验证了设置文件已被删除。但是,从 ripgrep 搜索我的电子邮件地址(包含在设置文件中)并没有发现任何相关信息。
这些是我运行的命令:
cd ~/
sudo rg --hidden "MY_EMAIL_HERE" >> ~/Desktop/home_search.txtcd /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
这是一条偶尔会 …
java ×10
centos ×3
jdk ×3
debian ×2
linux ×2
path ×2
alternatives ×1
arch-linux ×1
certificates ×1
executable ×1
fedora ×1
openjdk ×1
security ×1
selinux ×1
setcap ×1
ssl ×1
ubuntu ×1