Articles of Java的

Java BeautyEye外观和感觉为空的JMenuBar项目

我在Java桌面程序中使用BeautyEye外观,但最近发现JMenuBar显示了Empy JMenuItems,如下面的屏幕截图所示。 正如你所看到的,菜单的区域在那里,但是与Jframe contentPane颜色相同,并且没有可见的菜单文本。 一个样本程序来testing这个(从这里下载BeautyEye库)是: import java.awt.*; import javax.swing.*; import org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper; public class JavaMenuBarExample implements Runnable { private JFrame frame; private JMenuBar menuBar; private JMenu fileMenu; private JMenuItem openMenuItem; public static void main(String[] args) { try { BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.osLookAndFeelDecorated; org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper.launchBeautyEyeLNF(); UIManager.put("RootPane.setupButtonVisible", Boolean.FALSE); } catch (Exception ex) { ex.printStackTrace(); } // the proper way to […]

Java应用程序托盘图标在CentOS上不能正确显示

我写了一个可以在Windows和Linux上使用的Java应用程序。 该应用程序使用TrayIcon。 在Windows上,这是完美的,但在Linux(CentOS)上,TrayIcon有两个问题:1)我的png图像失去了透明度)2)图像看起来好像在稍后移动。 我通过获取托盘图标大小并相应地缩放来考虑不同的环境。 这是我的代码: Dimension trayIconSize = tray.getTrayIconSize(); Image originalImage = toolkit.getImage("tray_icon.png"); Image scaledImage = originalImage.getScaledInstance(trayIconSize.width, trayIconSize.height, Image.SCALE_SMOOTH); trayIcon = new TrayIcon(scaledImage, "Some Text"); 在CentOS上,.getTrayIconSize()的返回尺寸是24×24,但经过testing后,它实际上适合一个24×32(WxH)的图像,这意味着图像在设置为24×24时出现向上移动。 有没有办法保持背景透明度? 此外,任何build议dynamic获取大小合适的图标?

如何让SWT浏览器控制在Linux上使用Mozilla / Firefox而不是WebKit(Ubuntu 14)

我想让SWT 4.4.2浏览器在Linux(Ubuntu 14.o4 LTS)上使用Mozilla,每当我运行我的应用程序SWT使用webkit。 任何想法如何让SWT使用Mozilla? 作为一个例子,我正在使用SWT的以下代码来打开embedded式浏览器。 Linux的Ubuntu版本 public class DisplayMozillaVersion { public static void main(String[] args) { Device.DEBUG = true; Display display = new Display(); Shell shell = new Shell(display); System.out.println(">>>Snippet creating SWT.MOZILLA-style Browser"); try { new Browser(shell, SWT.MOZILLA); System.out.println(">>>succeeded"); } catch (Error e) { System.out.println(">>>This failed with the following error:"); e.printStackTrace(); System.out.println("\n\nSnippet creating SWT.NONE-style […]

如何以root身份启动Java程序,但降级为非root用户

我正在编写一个将在Linux服务器上运行的Java程序。 程序需要以“root”身份启动,执行某个操作(读取文件),然后在读取并closures文件后,将其自身降级为非root用户。 我通读了以下问题,但我还没有find一个可行的解决scheme – 尤其是因为我没有处理http端口。 https://askubuntu.com/questions/62713/how-to-downgrade-user-permissions-on-a-java-app-after-opening-port-80-443 https://serverfault.com/questions/112795/how-can-i-run-a-server-on-linux-on-port-80-as-a-normal-user 以root身份运行Java程序的一部分 任何想法如何实施我想要做的? 解答 : 正如答案中所build议的,JNA为我做了这个诀窍。

Java Home设置不正确?

我想在我的Fedora 22上安装MATLAB。最后,我得到一个错误 应用程序遇到意外错误,需要closures。 您可能想尝试重新安装您的产品。 更多信息可以在/tmp/mathworks_root.logfind 当我查看mathworks_root.log文件时,发现Java Home在安装过程中没有正确设置 Java Home / tmp / mathworks_32206 / sys / java / jre / glnxa64 / jre 虽然我设置了这个环境variables,输出这个命令 echo $ JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.45-40.b14.fc22.x86_64/jre/bin/java 你知道,为什么会发生这种情况? 谢谢!

我怎样才能在Linux中测量一个特定的端口传输速度? (每秒位)

我已经制定了一个可以测量特定networking接口( eth1 )速度的程序。 这个程序是使用java和以下命令构build的: cat /proc/net/dev 这个文件显示总包数和接收的数据以字节为单位。 但是我无法获得每个端口的数据。 我怎样才能得到每个港口的类似信息?

在$ JAVA_HOME中显示不同版本的java,在linux中显示为java -version

我正在使用Cent-OS。 当我执行“java -version”时,它显示:java version“1.7.0_45” 当我执行“echo $ JAVA_HOME”时,它显示/usr/java/jdk1.8.0_51 我在〜/ .bashrc中设置了JAVA_HOME,并find了它。 我也尝试在/ etc / profile中进行设置,并从中获取。 在configuration文件中,我将java设置为: JAVA_HOME =的/ usr /爪哇/ jdk1.8.0_51 export PATH = $ PATH:$ JAVA_HOME / bin 请告诉我如何将java版本设置为1.8。

Linux:从Upstart调用的Java程序不能访问mysql数据库

我正在处理一个简单的java后台进程,该进程处理来自套接字连接的数据,然后使用mysql连接器JDBC驱动程序build立与存储此信息的数据库的连接。 我想使用upstart作为服务使用程序,但初始化我的服务后,进程将失败,第一次上载后尝试访问JDBC驱动程序插入数据到数据库(不会在jdbc注册失败,但是这是我监视输出的最佳假设,尽pipe在我的日志中没有显示堆栈跟踪)。 如果我从程序中的catch语句中删除了出口调用,我可以看到这个进程持续地接收上传数据,但实际上没有数据存储在mysql数据库中。 通常从控制台运行java程序时,它执行没有任何问题。 下面的upstart .conf的部分指向我可以运行的同一个程序,没有任何问题。 script echo $$ > /var/run/uploadclient.pid exec java -cp /user/server UploadProgram >> /home/user/upload.log end script 有没有人听说过这样的问题?

将log4j添加到eclipse项目中

我的Eclipse运行在我的Ubuntu和工作区〜/ Workspace目录中。 我有我的工作区下载和提取log4j。 在~/workspace/apache-log4j-1.2.17$我有log4j-1.2.17.jar文件。 我试图通过设置project properties -> libraries -> Add external jar来告诉Eclipse使用log4j 。 不幸的是我的主类没有看到log4j。 我做错了什么? 哪里是在linux的jar文件的正确位置?

树莓派 – java – 串行通讯

我的Raspberry Pi(OS:Raspbian)和Java(JDK-7-Armhf)有一个严重的问题。 我的代码不会执行没有创build一个例外。 我会一直在阅读和尝试几个build议,但没有任何工作。 所以现在我很困惑什么地方出了问题..? 所以它是这样的:我有一个Java源代码将运行在我的Eclipes IDE。 但是,当我导出.jar文件,甚至与库(JRE系统lib。_86,JavaSE1.7,JAVAX.comm),作为“Runnabel JAR”或只是.JAR,并执行它om我的树莓派,我有“NoCLassDefFoundExecption:SerialPortEventListener ..!我只是不知道为什么,它不会find库和使用它..!在我的Pi我已经安装了librxtx-java和JDK-7-oracle-armhf。librxtx-java应该(我有一个文件夹/ usr / jni,它包含:librxtxSerial.so和/ usr / lib / jvm / jdk-7-oracle- armhf /)。 在Eclipse中查看库Javax.RXTXcomm,我已经得到了包含SerialPortEventListener的RXTXcomm.jar,所以它定义了.jar。 我正在考虑,我的Java JVM和linux串行端口驱动程序之间是否存在缺失的链接? 我的JRE以某种方式工作,因为它将执行一个代码来读出HOSTNAME&IP-Adress。 那么有没有人知道如何解决这个问题? 这是Javaexception的读取: Exception in thread "main" java.lang.NoClassDefFoundError: javax/comm/SerialPortEventListener at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:792) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at […]