Questions tagged «java»

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



5
如何跟踪Java程序?
作为系统管理员,我有时会遇到程序运行异常的情况,而根本不会产生错误或没有意义的错误消息。 过去-在Java出现之前-有两种对策: 如果没有其他帮助-RTFM ;-) 如果甚至没有帮助1.跟踪系统调用并查看发生了什么 我通常strace -f在Linux上使用此任务(其他OS具有类似的跟踪工具)。现在,尽管这通常适用于任何老式程序,但在java -process 上进行跟踪时,跟踪变得非常模糊。如此众多的系统调用似乎与任何实际操作都不相关,以至于无法通过此类转储进行搜索。 有没有更好的方法可以做到这一点(如果源代码不可用)?
25 linux  java  trace 

3
来自/ usr / bin / java的Java位置
我试图在我的Linux系统中找到我的java位置,并得到了 [980@b449 ~]$ which java /usr/bin/java [980@b449 ~]$ readlink -f $(which java) /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/bin/java 这两个命令有什么区别?
20 symlink  java 

3
运行未签名的Javaws代码
对于KVM远程控制台,我需要能够运行jnlp文件。当我运行它时,我得到: net.sourceforge.jnlp.LaunchException: Fatal: Initialization Error: Could not initialize application. at net.sourceforge.jnlp.Launcher.createApplication(Launcher.java:797) at net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:555) at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:908) Caused by: net.sourceforge.jnlp.LaunchException: Fatal: Application Error: Cannot grant permissions to unsigned jars. Application requested security permissions, but jars are not signed. at net.sourceforge.jnlp.runtime.JNLPClassLoader.setSecurity(JNLPClassLoader.java:319) at net.sourceforge.jnlp.runtime.JNLPClassLoader.<init>(JNLPClassLoader.java:239) at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:381) at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:337) at net.sourceforge.jnlp.Launcher.createApplication(Launcher.java:789) ... 2 more 我了解为什么您不希望浏览器运行任意未签名的代码。 …
19 security  java 

2
用环境设置的可执行路径编写系统单元文件
我正在为Java应用程序编写一个systemd单元文件,我想控制用于启动它的Java版本。我的(简化)服务文件是 [Service] Type=simple EnvironmentFile=%h/Documents/apps/app/app-%i/app.cfg ExecStart=${JAVA_HOME}/bin/java ${JAVA_OPTS} -jar %h/Documents/apps/app/app-%i/myapp.jar SuccessExitStatus=143 尝试启动时,出现错误提示 Apr 28 12:43:37 rombert systemd[1613]: [/home/robert/.config/systemd/user/app@.service:7] Executable path is not absolute, ignoring: ${JAVA_HOME}/bin/java ${JAVA_OPT Apr 28 12:43:37 rombert systemd[1613]: app@1.0.0.service lacks both ExecStart= and ExecStop= setting. Refusing. 我知道这JAVA_HOME是正确设置的;如果我将ExecStart行更改为开头,/usr/bin/java然后添加一些内容,就像-DsomeOption=${JAVA_HOME}我看到的一样。 显而易见的解决方法是创建一个包装器脚本,但是我觉得它超出了使用服务文件的目的。 如何使用单元文件为Java应用程序设置JAVA_HOME?
17 systemd  java 

6
只杀死一个Java进程
我通常只运行少数Java应用程序,一个用于本地运行的服务器,另一个用于NetBeans等IDE。而且不时地,在大量重新部署之后,我的服务器陷入了OutOfMemoryException异常,因此我需要终止Java进程才能重新启动。 因此,我这样做了,pkill -9 java但这也会杀死我不想运行的IDE。因此,我如何只杀死链接到正在运行的服务器的应用程序而不杀死其他应用程序?我假设它们都在同一进程中运行,但是必须有某种方法来区分它们。
17 process  java  kill 

9
在Debian上启动Java的问题:“加载共享库时出错:libjli.so”
我正在尝试启动Java: $ java -version java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory $ ldd /usr/lib/jvm/java-6-openjdk/jre/bin/java linux-gate.so.1 => (0xb779f000) libz.so.1 => /usr/lib/libz.so.1 (0xb7780000) libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb7767000) libjli.so => /usr/lib/jvm/java-6-openjdk/jre/bin/../lib/i386/jli/libjli.so (0xb7762000) libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb775e000) libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7603000) /lib/ld-linux.so.2 (0xb77a0000 $ …

2
如何在Awesome WM中修复Java应用程序的鼠标指针偏移?
如何在Awesome WM v3.5.2到3.5.5中重现(到目前为止): 安装OpenJDK或Oracle Java 7。两者都观察到此错误。 使用默认配置启动一个新的Awesome WM会话。 启动jEdit或PyCharm。两者都观察到此错误。 移动鼠标指针,并观察其如何根据您将鼠标悬停在代码,项目文件或菜单上而改变。这应该正常工作。 单击并释放在文件菜单上,进入子菜单之一,并观察如何始终将鼠标指针正下方的项目聚焦。 反复按Mod4+ Space直到浮动布局被激活(该应用程序将几乎全屏显示)或使用相同标签打开另一个应用程序。 在这一点上,我希望鼠标的行为与“常规”应用程序相同。相反,我观察到以下内容: 当使用鼠标单击和导航菜单时,鼠标指针和焦点菜单项将在垂直方向上彼此偏移,看起来与状态栏的高度具有相同的像素数量。 当像以前一样将鼠标悬停在其他项目上时,光标图标将被设置为好像鼠标指针在屏幕上方。例如,将鼠标悬停在文本的第一行上,您将看不到文本光标。 好像没有检测到窗口坐标已更改。 当您在同一标签中打开另一个应用程序时,会发生类似但更烦人的错误-鼠标的行为就像窗口根本没有移动一样。 当您切换另一个已打开应用程序的标签时, “虚拟鼠标桌面”将移至主屏幕的左上方。 由于已经在OpenJDK和Oracle Java中使用不同的Java应用程序观察到了这些错误,因此该错误很有可能是在Awesome WM中。 相关问题,文章。我尝试了_JAVA_AWT_WM_NONREPARENTING和wmname修复,但没有成功。
15 java  awesome 



1
JAVA_HOME和update-alternatives有什么区别?
我一直在尝试找出最佳方法,将OpenJDK Java运行时作为Fedora框的默认Java运行,并将Oracle JDK 6用于Android开发,即从Android Bundle运行Android SDK Manager,Android Studio和Eclipse。 我从Fedora存储库安装了OpenJDK Java Runtime,该存储库具有以下替代设置。 [donnie@fedora ~]$ alternatives --list | grep java jre_openjdk auto /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64/jre jre_1.7.0 auto /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64/jre java auto /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64/jre/bin/java libjavaplugin.so.x86_64 auto /usr/lib64/IcedTeaPlugin.so 我已经使用Oracle提供的rpm安装了Oracle JDK 6。 我可以通过粘贴以下内容来使Android Bundle和Studio利用JAVA_HOME在Oracle JDK下运行.bashrc。 export JAVA_HOME=/usr/java/jdk1.6.0_45/ export PATH=$JAVA_HOME/bin:$PATH 我注意到Chrome仍然使用OpenJDK(因为我仍然需要链接插件)。 JAVA_HOME和使用替代项有什么区别?


1
为什么Java 8被Debian Buster遗漏了?
仔细检查:您可以从Stretch Repo安装Java8。几个月前,它在生产环境中运行良好。没有理由为此延迟升级。(@peterh) Debian的最新稳定版本Debian Buster不再具有Java 8。 但是,Java 8仍广泛用于生产环境中,这样做在进行任何升级之前都是一个巨大的后备。 任何人都更了解Debian邮件列表的内部及其通信,他们这样做的理由可能是什么? 是否有希望Java 8曾经以某种升级的形式重新出现? 当然,从其他来源(Oracle,Ubuntu)甚至从Stretch软件包存储库安装Java 8是一种可行的选择。但是这样做,我们完全失去了官方回购协议的优势。
12 debian  java 

1
使用systemd配置Java守护程序
我在工作中使用此定义systemd: [Unit] Description=Some job [Service] ExecStart=/usr/local/sbin/somejob User=dlt Type=forking [Install] WantedBy=multi-user.target 调用脚本的方式如下(调用一个简单的例程,该例程在tcpip套接字上侦听并将输入追加到文件中): #!/bin/sh cd /home/user/tmp/testout nohup java -jar /home/user/programming/tests/java/core/SocketTest/SocketTest.jar </dev/null >/dev/null & After systemctl start somejob进程显示为正在运行,以init其父进程为例: user@CANTANDO ~$ ps -u dlt eo pid,ppid,command PID PPID COMMAND 8718 1 java -jar /home/user/programming/tests/java/core/SocketTest/SocketTest.jar 执行systemctl stop somejob完该过程后,不再显示(端口已关闭)。 所以一切似乎都很好 我的问题是:这是使用,运行Java守护程序的可接受解决方案systemd,还是存在警告,因此还有其他更稳定或安全的方法来实现这一目标?
11 systemd  java  daemon 

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.