Articles of Java的

org.jruby.Main上的NoClassDefFoundError

我试图使用JRuby 1.4.0RC1在Windows机器上安装hpricot gem。 我试图按照相关问题的build议(请参阅 – > 安装JRuby的hpricot )。 根据答案的build议,我把hpricot的git头从它的dir中跑了出来: jruby -S rake package_jruby cd pkg sudo jgem install ./hpricot-0.8.1-jruby.gem 但是,当我运行这个我得到以下NoClassDefFoundError: Exception in thread "main" java.lang.NoClassDefFoundError: org/jruby/Main Caused by: java.lang.ClassNotFoundException: org.jruby.Main at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) Could not find the […]

如何解决“java.lang.UnsatisfiedLinkError:无法find依赖库”没有System32?

我正在开发Eclipse上的Java项目,通过JNI使用C ++ OpenCV库。 一些image processingalgorithm是在本机端用OpenCV实现的,我希望从JNI中使用它们。 我build立了一个C ++ DLL项目来链接到Java,这导致了一个MyLibrary.dll文件。 我使用GCC 6.3编译器编译了OpenCV,并在Eclipse CDT上使用相同的GCC 6.3编译器编译C ++代码(以及MinGW Linker)。 我也检查是否有任何依赖问题使用Dependency Walker 。 到目前为止,我没有错误。 之后,我尝试从Java代码加载库,如下所示: System.loadLibrary("MyLibrary") 我已经使用-Djava.library.path=path\to\MyLibrary设置path,并确保JVM知道本地库的地址。 我还在MyLibrary.dll旁边添加了所需的OpenCV库。 但是,我得到以下错误: Exception in thread "main" java.lang.UnsatisfiedLinkError: MyLibrary.dll: Can't find dependent libraries at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(Unknown Source) at java.lang.ClassLoader.loadLibrary(Unknown Source) at java.lang.Runtime.loadLibrary0(Unknown Source) at java.lang.System.loadLibrary(Unknown Source) … 然后问题消失,当我将依赖的OpenCV库移动到System32文件夹。 我的问题是 我怎么能解决这个问题, 而不移动所需的DLL文件到System32文件夹?

Java时区已经搞乱了

我正在运行一个Tomcat应用程序,我需要显示一些时间值。 不幸的是,现在是一个小时的时间了。 我看着它,发现我的默认TimeZone被设置为: sun.util.calendar.ZoneInfo[id="GMT-08:00", offset=-28800000, dstSavings=0, useDaylight=false, transitions=0, lastRule=null] 而不是太平洋时区。 当我尝试打印默认时区的显示名称时会进一步显示 ,并显示 “GMT-08:00”,这似乎表明它没有正确设置为美国太平洋时区。 我在Ubuntu Hardy Heron上运行,从Gutsy Gibbon升级。 是否有一个configuration文件可以更新,告诉JRE使用Pacific的所有相关夏令时信息? 我的机器上的时间显示正确,所以它似乎不是一个操作系统范围的错误configuration。 好的,这是一个更新。 一位同事build议我更新我的/ etc / profile中的JAVA_OPTS以包含“-Duser.timezone = US / Pacific”,该工作正常(我也看到了CATALINA_OPTS,我也更新了它)。 实际上,我只是将变化导出到variables中,而不是使用新的/ etc / profile(稍后重新启动会接受更改,我将变为黄金)。 不过,我仍然认为有一个更好的解决scheme…应该有一个configurationJava的地方,说什么时区正在使用,或者它是如何抓住时区。 如果有人知道这样的设置,这将是很棒的,但现在这是一个体面的解决方法。 我使用1.5,这绝对是一个DST问题。 正如你所看到的,时区被设置为不使用夏令时。 我的信念是一般设定为-8抵消,而不是特定的太平洋时区。 由于通用-8偏移量没有夏令时信息,所以当然不会使用它,但问题是,我怎样告诉Java在启动时使用太平洋时区? 我不是在寻找一个程序化的解决scheme,它应该是一个configuration解决scheme。

在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); 但是,我不太确定。