Articles of Java的

为什么Atmel AT91SAM9G25 SoC电路板上的OpenJDK太慢了?

你好我在ARM设备上运行Java( http://www.acmesystems.it/arietta ) 而且速度非常慢, time java的time java结果是: openjdk version "1.8.0_66-internal" OpenJDK Runtime Environment (build 1.8.0_66-internal-b17) OpenJDK Zero VM (build 25.66-b17, interpreted mode) real 0m51.499s user 0m1.656s sys 0m46.477s 眼镜: CPU Atmel AT91SAM9G25 SoC (ARM9 @ 400Mhz) DDR2 Ram 128 or 256 MByte 任何想法如何使其更快?

Matlab安装(LD_LIBRARY_PATH)弄乱了其他库文件

我试图在Linux机器上安装Matlab,但设置LD_LIBRARY_PATH(如安装需要)会中断其他库文件。 我不是一个Linux专家,但我已经尝试了几件事情,不能正常工作。 我甚至联系了Matlab的支持,把问题提到了开发团队,基本上被告知“哈哈吸吮”。 我在网上看到其他一些人有同样的问题,但是他们的问题都没有回答,或者他们有一个稍微不同的问题,他们的解决scheme并不适用于我。 在运行Ubuntu的虚拟机上安装: 按照说明设置LD_LIBRARY_PATH,然后中断networking文件。 我可以ping google.com,但我不能nslookup google.com或在浏览器中访问它。 Nslookup提供了这个错误: nslookup: /usr/local/MATLAB/MATLAB_Runtime/v90/bin/glnxa64/libcrypto.so.1.0.0: no version information available (required by /usr/lib/libdns.so.100) 03-Feb-2016 11:32:22.361 ENGINE_by_id failed (crypto failure) 03-Feb-2016 11:32:22.362 error:25070067:DSO support routines:DSO_load:could not load the shared library:dso_lib.c:244: 03-Feb-2016 11:32:22.363 error:260B6084:engine routines:DYNAMIC_LOAD:dso not found:eng_dyn.c:447: 03-Feb-2016 11:32:22.363 error:2606A074:engine routines:ENGINE_by_id:no such engine:eng_list.c:418:id=gost (null): dst_lib_init: crypto failure 安装虽然工作(我可以运行我的Java程序引用编译的Matlab函数)。 取消设置LD_LIBRARY_PATH可修复networking文件,但不能再运行程序。 在EC2实例上安装: 在EC2实例上,它不会破坏networking文件(nslookup很好)。 […]

我可以使用Java策略文件安全地运行带有sudo的不受信任的应用程序

我正在运行一个值得信赖的J2SE应用程序(我的世界),但可能包含完全不可信的(甚至可能是一些敌对的)插件。 我想创build一个可以访问Raspberry PI上的GPIO引脚的插件。 我见过的每个解决scheme都要求这样的应用程序被赋予sudo-superpowers,因为gpio是通过直接内存访问来访问的。 看起来像正确的解决scheme是提供一个像这样的命令行选项: -Djava.security.policy=java.policy 这似乎默认你没有权限(即使访问文件和高端口),然后添加你的应用程序需要回来的政策文件。 实际上,你似乎给了Java“sudo”权力,然后相信java的安全模型,只给予各种类别适当的权力。 我猜这使得应用程序安全地与sudo运行 – 这是正确的? 有趣的是,自从1.0以来,我一直在使用Java,而且以前从未需要这样做。每天都会学到新东西。

Tomcat托pipe的Web应用程序链接在Linux中不起作用

用JSP和Servlet开发了一个应用程序,在Windows机器上托pipe的Tomcat 8.0中工作正常。 我已经创build了相同的环境,并在Linux v3.0.4中托pipe.war(为特定设备开发),只有一些链接正在工作。 链接redirect到空白页面。 需要帮助

关于JVM信号处理

我想禁用像CTRL_C发送的SIGINT信号,以及其他会终止JVM的信号。 我在这里阅读关于-Xrs选项 http://docs.oracle.com/javase/7/docs/technotes/tools/windows/java.html?cm_mc_uid=30731201786714525992590&cm_mc_sid_50200000=1461656557 但是它似乎对JVM /进程终止没有影响。 我启动了程序jar,像java -Xrs -jar avoid-signals.jar 。 我在Linux上。 有什么build议么?

如何检查死亡后的进程状态,或甚至可能?

我有一个应用程序,我故意引入空指针exception。 我将用一个代码示例来解释如下: // access modifiers omitted for brevity class MyApplication extends Application { String name; String getName() { return name; } void setName(String name) { this.name = name; } } // ==================================== // access modifiers omitted for brevity class WhatIsYourNameActivity extends Activity { void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.writing); // Just assume that in the […]

在在线Gitlab ci上安装Java

这是我的.gitlab-ci.yml脚本。 before_script: – uname -a – apt-get install default-jre default-jdk openjdk-7-jre openjdk-7-jdk – java -version – export MODE="service" – export PID_FOLDER="/var/run/gitlab-runner-test" dev: script: – chmod +x gradlew – ./gradlew assembleDebug 我想在gitlab.com页面上运行脚本来编译一个android项目。 我检查了一些与我的脚本的变化,没有Java安装在Linux Linux的runner-8a2f473d-project-881036-concurrent-0 4.5.0-coreos-r1#2 SMP Thu May 5 07:27:26 UTC 2016 x86_64 GNU / Linux。 我尝试安装java,就像显示为ruby的示例,但它不起作用,并给出无法find包错误。 我不知道应该是什么样的包,因为它看起来像一个Ubuntu系统,但在我的Ubuntu的工作命令不起作用。 这不是本地安装。

Android线程模型是一对一还是多对一?

我很困惑Android的线程模型。 我卡住了…… 🙁 Android是实施一对一还是多对多的? 从Stackoverflow /谷歌/书籍,我了解到,Android使用Linux pthread的修改版本。 我认为这意味着Android实现了一对一的Thread模式。 (即,每个内核线程一个用户线程) 但是,如果我在Android设备上看到使用ps -t的进程/线程,则单个应用程序中有很multithreading。 例如,2 kworkers和14其他线程(如Binder,马里,JDWP,GCDaemon等)。 从这个事实,我认为Android实现了多对多的Thread模式。 (即,M个用户线程到N个内核线程) @我了解到kworker是内核工作线程。 是否认为kworker是应用程序的内核线程?

如何在Linux中使用java命令获取当前正在执行的jar文件的path?

我有两种方法来获取jarpath 1) File file = new File(new File(Main.class.getProtectionDomain().getCodeSource().getLocation().getPath()).getName()); String filename = file.getAbsolutePath().toString(); 2) String filename2 = Main.class.getProtectionDomain().getCodeSource().getLocation().toString().substring(6); 第一种方法完美适用于Windows和Mac,但是在Linux中,如果我的jar位于'/home/user/Documents/test folder/' ,它将返回我当前的工作目录+ jar文件 例如:如果我的terminal在/home/user/ ,即使MyJar.jarpath是'/home/user/Documents/test folder/'也会返回/home/user/MyJar.jar 。 第二种方法,对于每个操作系统,返回到文件的正确path,但用%20replace空格。 例如: /home/user/Documents/test%20folder/MyJar.jar 我如何在Linux中获得绝对path,就像我为Windows和Mac所做的一样,而不用%20作为空间replace?

在Linuxterminal编译项目不起作用

我有一个Compile.sh文件。 这个作品像一个魅力: cd src javac model/JNIResultSet.java javah -jni model.JNIResultSet cp model_JNIResultSet.h ./../bin/ cd .. cd bin gcc -fPIC -o libspieler.so -shared -I/usr/java/jdk1.8.0_73/include/ SharedTable.c -lc java -Djava.library.path=./../bin/ app.Main 我的问题是,我不想在我的源文件夹中。 我想让他们在一个单独的文件夹中。 为此,我的脚本看起来像这样: cd src javac model/JNIResultSet.java javah -jni model.JNIResultSet cp model_JNIResultSet.h ./../data/ cd .. cd data gcc -fPIC -o libspieler.so -shared -I/usr/java/jdk1.8.0_73/include/ SharedTable.c -lc cd .. cd […]