Articles of Java的

如何在64位Linux上使用64位浏览器和64位Java插件获取32位JREpath

我的应用程序由三部分组成: 小程序 Java程序(myapp.jar) JNI库(myjni.so) 请注意,JNI库是为32位构build的。 在32位操作系统上,applet使用java.home属性来获取JREpath。 一旦applet获取了JREpath,它将像这样启动JAR JRE-path myapp.jar 现在我需要在64位Linux上运行这个应用程序。 在这里我有两个select: build立64位的JNI库。 这是不可能的,因为所有依赖的库需要为64位构build。 (这是我的一个限制) 要求用户安装32位的JVM现在的问题是如何获得32位的JREpath,因为java.home属性给出了64位的JREpath。 (因为浏览器和插件是64位)。 一种select是使用update-alternatives –list java命令获取所有JRE安装path。 然后,对于每个安装path,运行JRE-path -d32 –version命令查看它是否支持32位JVM 如果它支持32位JVM,则使用该JREpath启动JAR文件 如果没有一个java安装支持32位JVM,则显示消息以安装32位JVM 题: 上述解决scheme有没有问题? (我需要在Ubuntu,Redhat和OpenSuse上使用这个解决scheme) 有没有更好的解决scheme,以获得64位Linux上的32 JREpath?

在chroot下,Android上的Ubuntu报告了不同数量的处理器

我已经在我的HTC One X(QuadCore实际上是PentaCore)的Chroot环境下安装了Ubuntu 12.04(v2 full): http ://linuxonandroid.blogspot.de/p/downloads.html 当我在Ubuntu上启动一个简单的Javaterminal应用程序并使用Runtime.getRuntime().availableProcessors()打印处理器计数时,我注意到我得到的结果不一致。 它返回1到4核之间的任何地方,而不是总是看到所有4。 我知道原生Android内核按需使用4个内核,但是当我在Ubuntu上运行进程查看器htop ,总是会看到4个CPU! 为什么Ubuntu的JVM报告不同数量的内核,而htop和Ubuntu内核可以一致地看到所有4个内核?

JDBC程序运行很长时间的性能问题

我的程序有一个与Oracle查询性能有关的问题,我相信SQL有很好的性能,因为它在SQLPlus中快速返回。 但是当我的程序运行了很长时间,比如1周,SQL查询(使用JDBC)变慢(在我的日志中,查询时间比我最初启动程序的时间要长)。 当我重新启动我的程序时,查询性能恢复正常。 我认为这可能是我使用preparedStatement的方式有问题,因为我使用的SQL不使用占位符“? 在所有。 只是一个复杂的select查询。 查询过程由一个util类完成。 以下是构build查询的相关代码: public List<String[]> query(String sql, String[] args) { Connection conn = null; conn = openConnection(); conn.setAutocommit(true); …. PreparedStatement preStatm = null; ResultSet rs = null; ….//set preparedstatment arg code rs = preStatm.executeQuery(); …. finally{ //close rs //close prestatm //close connection } } 在我的情况下,参数总是为空,所以它只是将查询sql传递给这个查询方法。 这样做可能会减慢程序运行后的数据库查询吗? 或者我应该使用声明,或者只是通过“?”的参数 在SQL? 我怎样才能find我的问题的根源呢? 谢谢。

在Java中伪装IP

我必须通过在JAVA中的不同URl上发送HttpRequest来获得来自不同站点的用户的数据。 一个问题我得到的是,所请求的URL阻止我连续数量的请求,依赖于URL到URL。 解决这个问题的一个办法就是每次请求发送时都要通过改变IP来发送请求到相同的URL次数。 但我没有任何想法发送请求通过随着时间的推移在IP Java的时间。 我试图用IP伪装,但我找不到任何教程一步一步。 我对这项技术很陌生。 我正在尝试在Linux(Fedora) 在Java中请帮助我得到这一点。

为什么jvisualvm崩溃的消息:“没有指定协议”

使用Ubuntu 11.10。 当我从命令行运行jvisualvm时,输出是:“没有指定协议”。 然后程序退出。

Ubuntu脚本来编译多个Java文件?

我知道这个命令是javac file_name.java但是我怎样才能把一个可以编译几个java文件的shell脚本放在一起呢? 我也在考虑复制文件,我认为我只是使用cp和绝对文件path引用。

java getLocalHost()UnknownHostException / etc / hosts文件不同的Linux API?

我有两台Redhat 6.3机器,在/ etc / hosts中都没有改变(即我没有添加一个ip地址给他们)。 我的机器上可以运行getLocalhost罚款并返回主机名a.domain.com。 另一个失败与UnknownHostException。 以前,我总是添加IP到/ etc / hosts,但我想知道为什么这台机器不需要这个。 两台机器上的/etc/nsswitch.conf都有“hosts:files dns”,所以两台机器都是一样的。 / etc / sysconfig / network-scripts / ifcfg-eth0脚本有很大的不同。 得到UnknownHostException的节点就像这样 DEVICE="eth0" BOOTPROTO="static" NM_CONTROLLED="yes" ONBOOT="yes" TYPE="Ethernet" IPADDR=10.10.1.5 PREFIX=23 一个工作有这样的事情… DEVICE="eth0" HWADDR="AA:AA:AA:AA:3F:A8" NM_CONTROLLED="yes" ONBOOT=yes TYPE=Ethernet BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth0" IPADDR=10.10.1.2 PREFIX=23 GATEWAY=10.10.1.1 DNS1=10.20.100.100 DNS2=10.20.100.101 DOMAIN="domain.com sub.domain.com" 难道这不知是什么原因? 或者我可以看看其他文件,看看为什么这不起作用? 我假设java正在调用一些linux getLocalHost api来调用机器来获取主机名。 谢谢,Dean

我怎样才能运行我的Java应用程序的虚拟屏幕?

在Linux中,我们有像桌面1,2,3,4这样的虚拟屏幕。大多数情况下我们使用桌面1(屏幕1和一个显示器)。 现在,我的问题是我怎么能告诉我的Java应用程序启动桌面2(屏幕2,与一个监视器) 默认情况下,当我运行java -cp /var/tmp/SystemX.jar run.X时,它将在桌面1,屏幕1中启动。哪一个不是我的情况。 试过:以下但没有帮助的原因,它运行双监视器场景。 不是我所期待的。 screen = Toolkit.getDefaultToolkit().getScreenSize(); GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsDevice[] screenDevices = ge.getScreenDevices(); for (int i = 0; i < screenDevices.length; i++) { System.out.println(screenDevices[i].getIDstring()); int screenWidth = 1024; int screenHeight = 764; if (screenDevices[i].getDisplayMode()!=null) { DisplayMode dm = screenDevices[i].getDisplayMode(); screenWidth = dm.getWidth(); screenHeight = dm.getHeight(); } System.out.println("[myResolution]: " + […]

在根用户的Android上运行Oracle Java Embedded Suite 7.0(ARM Linux版本)

我的目标是在手机上运行Tomcat Web服务器,但运行任何Java应用程序都可以。 看起来,Oracle Java Embedded Suite 7.0是一个常规的Java SE,可以在ARM设备上运行(免责声明,我以前从未使用Java Embedded)。 我已经通过ADB将其复制到我的手机,但是当我尝试运行java可执行文件时,它说它无法find该文件。

AudioSystem.getMixerInfo()在Java / gentoo中没有任何内容

我想在机器人上开发语音识别程序。 机器人安装了gentoo chroot。 当我调用AudioSystem.getMixerInfo() ,它不返回任何内容。 JDK版本是jdk-6u35-linux-i586。 / dev /中有很多audio设备,如下所示: nao [0] /dev $ ls -l|grep audio crw-rw—- 1 root audio 14, 4 Oct 3 02:33 audio crw-rw—- 1 root audio 14, 3 Oct 3 02:33 dsp crw-rw—- 1 root audio 14, 0 Oct 3 02:33 mixer crw-rw—- 1 root audio 14, 1 Oct 3 02:33 […]