Questions tagged «java»

Java是一种通用编程语言,并且是一个称为Java虚拟机(JVM)的计算平台。在处理Java程序,安装Java或配置Java安装时,请使用此标记。

1
如何使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 尝试执行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 …

1
我怎么知道哪个unistd.h文件被加载?
unistd.h我的Ubuntu Linux中有几个文件。我一上来/usr/include/asm/unistd.h。该文件具有以下指令: # ifdef __i386__ # include "unistd_32.h" # else # include "unistd_64.h" # endif 在该文件夹中,我可以找到这些文件(unistd_32.h和unistd_64.h)。 但是/usr/src/linux-headers-2.6.31-22/include/asm-generic/还有另一个unistd.h以该指令开头的: #if !defined(_ASM_GENERIC_UNISTD_H) || defined(__SYSCALL) #define _ASM_GENERIC_UNISTD_H 所以,问题是:我怎么知道加载了哪一个?有什么方法可以在运行时使用Java进行检查吗?
11 linux  c  java 

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

1
在哪里可以设置全局Java选项?
我在Java程序中可怕的,不正确渲染字体,如jabref和rubymine。可以通过运行来解决 _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on' jabref 我知道我可以将这些Java选项导出为环境变量,然后从命令行启动程序。但是,是否有一种方法可以全局设置这些选项,以便所有Java程序都能识别它们,而无论它们如何启动? 我也知道我可以修改*.desktopJava程序的所有文件,但是我正在寻找一种全局解决方案。 我java-7-openjdk在Arch Linux上使用。(FWIW过去安装了现在已损坏的jre7-openjdk-headless-infinality时还可以。)

2
jetbrains-toolbox加载到黑屏
在过去一个月左右的时间里,我一直在尝试使jetbrains-toolbox正常工作。它曾经可以工作(也是我安装IntelliJ IDEA和Gogland的方式。)当我去更新IDEA时 我目前正在使用Arch。这是我尝试过的东西。 从Sway内加载jetbrains-toolbox。 从aur重新安装jetbrains-toolbox。 从Jetbrains网站重新安装jetbrains-toolbox。 用--disable-gpu启动 清除〜/ .local / share / JetBrains / Toolbox 谷歌搜索我收到的所有消息。 在不同的DE中加载jetbrains-toolbox。我尝试了GNOME,KDE和i3。 设置文件(〜/ local / share / JetBrains / Toolbox / .settings.json),即使被操作编号5清除后,也可以重新生成,因此,我认为文件系统中某处存在某些文件,它不是“不会消失。我认为这可能是造成问题的原因。我已经通过查看Thunar的回收站文件夹验证了设置文件已删除。但是,从ripgrep搜索我的电子邮件地址(包含在设置文件中)并没有发现任何相关信息。 这些是我运行的命令: cd ~/ sudo rg --hidden "MY_EMAIL_HERE" >> ~/Desktop/home_search.txt 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": …

1
允许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` 我发现一些文章指出这可能是由于SELinux所致,并尝试setenforce 0查看问题是否消失。我运行了该命令,Java运行正常。但是这些相同的文章说,留setenforce 0在Internet上连接的主机很危险,并且我的主机已连接到Internet。 还有其他文章建议使用这种下一种方法,但也说这可能很危险,所以我还没有尝试过。 chcon -t textrel_shlib_t /usr/jre1.7.0_10/lib/i386/client/libjvm.so ...在上述命令中,命令末尾的路径被替换为我的JDK的路径。 我找不到关于“安全地”在SELinux上运行Java 7的“官方”信息(可能意味着很多事情)。有人有我的资料吗? 编辑: 我发现了一篇有关编辑的文章/etc/selinux/config。我已按照下面的示例所示进行设置。这样就可以运行Java,但是我想我现在有一些安全漏洞。 # This file controls the state of SELinux on …
9 linux  java  selinux 

1
仅针对一个用户的更新替代
我正在使用共享服务器。在该服务器上安装了不同版本的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 我想选择“第二个”选项,但是如果尝试这样做,它会抱怨我没有权限(我不是root用户)。 有没有办法在“用户空间”中做到这一点? Root用户能否使此首选项仅对我有效?

4
设置Android Studio卡住了
我是在设置刚安装的Ubuntu Mate 16.04时,是时候设置Android Studio 3.0了: 看来安装程序尝试 反复从https://dl.google.com/android/repository/android_m2repository_r47.zip下载 ,我认为它内部失败。 当我在浏览器中尝试使用URL时,它仍然有效。有人熟悉这个问题吗? [补充] •Java版本:8u152 •已执行:sudo apt-get install libc6:i386 libncurses5:i386 libstdc ++ 6:i386 lib32z1 libbz2-1.0:i386
8 ubuntu  java  android 

4
如何在CentOS上正确设置JAVA_HOME?
我正在尝试设置JAVA_HOME,以便可以在本教程的帮助下安装Apache Solr。我通过root用户使用ssh连接到服务器 要允许正在运行的sh脚本安装Apache Solr,请执行以下操作: mount | grep noexec 使用exec选项重新挂载文件系统: mount -o remount,exec /dev/md1 然后,每次我尝试使用以下命令进行安装时 bin/install_solr_service.sh /tmp/solr-5.3.1.tgz 我收到以下消息: 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 …
8 centos  java  jdk 

2
Java进程冻结,直到我使用100%CPU [关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Unix&Linux Stack Exchange 的主题。 2年前关闭。 我遇到的问题 在Android Studio,Eclipse或什至命令行Gradle上工作时,Java软件通常会冻结(即使通常是在更新系统/更改Java之后)。对于Android-Studio和Eclipse,如果我移至另一个桌面并返回,则该窗口变为灰色窗口,并且即使经过几个小时,该界面也永远不会恢复。我想这是Java问题。 它并不总是会发生:通常情况下,好几周我都不会有任何问题,直到它再次出现。我不明白是什么使它停止的:发生这种情况时,我尝试重新启动计算机,更改Java JDK版本,但它没有任何改变。然后有一天,我启动了计算机,问题消失了-接下来的几周。 我可以观察到的 一个CPU始终保持100% 我不能让Android工作室的线程转储(如描述在这里):它冻结为好。 如果我在冻结Android-Studio / Eclipse / Gradle的同时运行了一个大型C ++编译(即占用我所有CPU的编译),那么它将停止冻结,并且我可以继续工作直到下一次(但这种情况非常经常发生) 。 我尝试了什么 我尝试了另一个Window Manager:我可以重现XMonad和Fluxbox上的错误 我试图export _JAVA_AWT_WM_NONREPARENTING=1在/etc/profile.d/jre.sh 我试图之间切换java-7-jdk,java-7-openjdk,java-8-jdk,java-8-openjdk 我试着跑 wmname LG3D 我试图pkill -e adb按照评论中的建议运行 我尝试jmap <pid>在<pid>Android Studio上运行,但出现了“ DebuggerException:无法附加到进程”的信息 我尝试jcmd <pid> GC.run在<pid>Android Studio上运行,但有一个“ DebuggerException:无法连接到进程”和“无法打开套接字文件:目标进程未响应或未加载HotSpot VM”。 我试图删除我的.gradle目录 我尝试使用Invalidate and RestartAndroid Studio(但问题似乎也不是Android Studio特有的,因为我也曾在Eclipse中遇到过此问题) …

2
Java JDK在依赖项列表,Debian中缺少libjli.so路径
我正在编写chroot监狱的脚本,自动化的一部分包括将各种可执行文件及其依赖项复制到监狱中。我正在使用以下bash行从依赖项列表中解析文件路径(例如,对于Java): $ ldd `which java` | grep -o '/[^()]*' /lib/x86_64-linux-gnu/libz.so.1 /lib/x86_64-linux-gnu/libpthread.so.0 /lib/x86_64-linux-gnu/libdl.so.2 /lib/x86_64-linux-gnu/libc.so.6 /lib64/ld-linux-x86-64.so.2 这对Node.js和Python很好用,但是当我尝试java从监狱执行时,出现错误: java:加载共享库时出错:libjli.so:无法打开共享库文件:没有这样的文件或目录 事实证明,依赖项列表中缺少libjli.so路径……至少那些ldd向我们展示的依赖项(第5行): $ ldd `which java` linux-vdso.so.1 => (0x00007ffff7f4d000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f7ac3928000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7ac370c000) libjli.so => not found libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7ac3507000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7ac317c000) /lib64/ld-linux-x86-64.so.2 (0x00007f7ac3b48000) 我找到了文件... $ find /usr/lib …

5
在Ubuntu中设置或获取$ JAVA_HOME的系统范围的方法?
我想知道Ubuntu本身是否提供了一种系统范围内的方法来查找当前值,JAVA_HOME或者是否有合适的位置进行设置JAVA_HOME。 Mac OS X在此方面做得很好,因为/usr/libexec/java_homecommand返回了current JAVA_HOME。但是对于Ubuntu,我发现的材料总是告诉我将$JAVA_PATH指向的位置设置为静态路径,该路径存储在中~/.bash_profile。 但是,我认为这种方法有几个缺点: Java更新后,迷你版本号将更改,从而使静态路径不再可用。 改变我的系统中使用与JRE后update-alternatives,我要修改$JAVA_HOME的.bash_profile。额外的工作很烦人。 某些$JAVA_HOME程序根本不知道.bash_profile。我必须设置$JAVA_HOME他们的启动脚本,因此$JAVA_HOME对我而言,一种简单易行的获取方法似乎很关键。 好吧,任何建议都欢迎。谢谢。
8 ubuntu  path  java 

2
处理重复的程序名称bash
我想知道是否$PATH 级联条目。在这里,你们所有人都需要与我一起迈出信心的飞跃,但事情确实如此。 假设我们有一个Java可执行文件,/usr/bin/java但此版本非常旧且过时。不幸的是,我们没有su访问权限,所以我们不能仅仅替换它。但是,我们可以在本地下载JRE / JDK的当前版本,并指向更新的版本。我的问题是,当我们有两个或多个具有相同名称但在两个或多个不同位置的可执行文件时,bash如何处理?当我们输入java控制台时,bash是否会以某种方式选择执行哪一个?假设我们/usr/bin还有许多其他可执行文件,那么$PATH看起来像这样的东西如何正常工作? 理想情况下,键入时java -version应该看到: java version "1.8.0_45" Java(TM) SE Runtime Environment (build 1.8.0_45-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode) 代替 java version "1.7.0_45" Java(TM) SE Runtime Environment (build 1.7.0_45-b18) Java HotSpot(TM) Client VM(build 24.45-b08, mixed mode, sharing) 我确定这个问题已经被问过了,并且与它相关联。我在SE,SO和一些论坛上闲逛,但没有发现任何结论。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.