Articles of Java的

使用getRuntime().exe(cmd)更改registry项的值不会更改registry值,即使操作已成功结束

我试图从我的Java应用程序更改registry值。 我使用这个命令: LoudnessEqualizationToggle.execCmdNoReturn("reg add \"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\MMDevices\\Audio\\Render\\"+guid+"\\FxProperties\"" + " /f /v \"{E0A941A0-88A2-4df5-8D6B-DD20BB06E8FB},4\" /t REG_DWORD /d \""+((activateLEOnKey) ? 1 : 0)+"\""); 凡guid是{d348b8e8-3118-4a9c-9b43-422647b555ca} activateLEOnKey是布尔值 execCmdNoReturn函数: public static final void execCmdNoReturn(String cmd) { try { Scanner s = new Scanner(Runtime.getRuntime().exec(cmd).getInputStream()).useDelimiter("\\A"); System.out.println("Command:"+cmd); System.out.println("Printing executed data"); while (s.hasNext()) { System.out.println(s.next()); } } catch (IOException ex) { Logger.getLogger(LoudnessEqualizationToggle.class.getName()).log(Level.SEVERE, null, ex); } } 一切正常。 […]

尝试在Windows上的Hotspot JVM中处理SIGBREAK时发生IllegalArgumentException

我正在尝试使用sun.misc包中的信号处理类(如此处所述 )来处理Windows上的Hotspot JVM中的SIGBREAK,以便在Ctrl + Break中触发closures,而不仅仅是转储线程。 但是,我遇到了一个情况,它抛出一个IllegalArgumentExceptionexception,说当我试图设置处理程序时,SIGBREAK已经被操作系统或虚拟机处理。 甚至当我运行带有-Xrs标志的JVM时,也会发生这种情况,这标志着禁止处理SIGBREAK信号。 有没有人有任何经验处理信号在Windows上使用sun.misc.Signal? 有没有解决的办法?

从驱动器盘符中获取分区名称,反之亦然

我正在处理的程序需要访问可移动驱动器。 通常情况下,这不会是一个问题,因为挂载点应该保持不变(例如:在Ubuntu上,我的手机的SD卡挂载在/media/sebastian/GT-S5830/ )。但是在Windows上有驱动器号, 。 (相同的电话:一旦E:\ ,插入相机在E: ,它变成F:并停留。) 所以我想通过不保存驱动器号来解决这个问题,而是分区名称。 例如:设置时,给出pathE:\DCIM\Camera\ 。 现在我想要做以下事情: 获取安装在E:处的分区的名称E: 将path保存到给定目录,如<partname>:\DCIM\Camera\ 访问设备时,parsing名为partname的分区的驱动器号 通过连接驱动器号和冒号后面的path部分构buildpath。 如何通过在Windows上提供挂载点来获取分区名称,反之亦然?

在Windows / Linux / Mac上的Java程序中响应全局热键?

Java6应用程序位于系统托盘中。 它需要使用热键(例如Super-G或Ctrl-Shift-L等)激活并执行某些操作(例如显示input框)。 我如何做到这一点: Windows(XP或Vista) OS / X Linux(Gnome或KDE)

损坏的jar文件

我已经使用eclipse在Windows 7中创build了一个jar文件。 当我试图打开jar文件它说无效或损坏的jar文件。 任何人都可以build议我为什么jar文件无效?

在Windows上如何合并GIT?

我试图使用GIT,但对我来说,最大的问题是,没有兼并的工具。 至lessmsysgit不给我任何东西。 我如何在GIT中合并? 是否有任何伟大的工具,或者我必须使用WinMerge或应用程序? 我使用Java和Eclipse。

JNA – 查询Windows进程

我正在尝试使用JNA来返回特定Windows进程的详细信息。 不完全确定如何做到这一点。 无法在互联网上find很多帮助。 我想返回的一些信息包括CPU和内存使用情况。 下面只是我find的一个例子。 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.DataInputStream; import java.io.FileInputStream; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import com.sun.jna.*; import com.sun.jna.Library.Handler; import com.sun.jna.platform.win32.*; import com.sun.jna.platform.win32.Advapi32Util.*; import com.sun.jna.platform.win32.WinNT.*; import com.sun.jna.ptr.IntByReference; import com.sun.jna.win32.*; import com.sun.jna.Native; import com.sun.jna.platform.win32.*; import com.sun.jna.win32.W32APIOptions; public class WindowsProcess { public static void main(String[] args) { WinNT winNT = (WinNT) Native.loadLibrary(WinNT.class, W32APIOptions.UNICODE_OPTIONS); […]

如何指定与基础Windows代码页一致的Java file.encoding值?

我有一个使用InputStreamReader通过套接字接收数据的Java应用程序。 它从它的getEncoding方法报告“Cp1252”: /* java.net. */ Socket Sock = …; InputStreamReader is = new InputStreamReader(Sock.getInputStream()); System.out.println("Character encoding = " + is.getEncoding()); // Prints "Character encoding = Cp1252" 这与系统报告的代码页不一定匹配。 例如: C:\> CHCP 有效代码页:850 应用程序可以接收字节0x81,在代码页850中代表字符ü 。 程序使用代码页1252来解释那个字节,它没有在那个值上定义任何字符,所以我得到了一个问号。 我能够通过在启动应用程序的batch file中添加另一个命令行选项来为使用代码页850的一位客户解决此问题: java.exe -Dfile.encoding = Cp850 … 但是,当然,并不是所有的客户都使用代码页850。 我如何让Java使用与底层Windows系统兼容的代码页? 我的偏好是我可以放在batch file中,而不改变Java代码: ENC = … java.exe -Dfile.encoding =%ENC%…

当我运行我的自动刷新,我无法阻止它

如果我点击开始button,我不能点击返回或停止。 我需要停止应用程序。 停止应用程序的一种方法是,您必须closures电脑:D。 当应用程序正在运行时,启动button被locking,我不能点击它。 点击退出button不起作用。 这个应用程序是简单的AutoClicker。 在java中存在比机器人类更好的autoclicker吗? 我该如何解决? 有没有错误的地方? 或者有什么我可以做停止应用程序? import java.awt.AWTException; import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.Robot; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.JCheckBox; import javax.swing.JLabel; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.awt.Color; public class AutoClicker extends JFrame { private JPanel contentPane; private final JLabel m = new JLabel("AutoClicker"); /** […]

Java:确定当前Windows用户的程序化方法

我看到很多类似的问题,但是我想find使用Java的当前login用户的用户名。 它可能是这样的: System.getProperty(current.user); 但是,我不太确定。