GVKun编程网logo

如何在Java或Linux上的JRuby中找到我的PID?(linux获取java的pid)

9

在这篇文章中,我们将为您详细介绍如何在Java或Linux上的JRuby中找到我的PID?的内容,并且讨论关于linux获取java的pid的相关问题。此外,我们还会涉及一些关于java–RubyMi

在这篇文章中,我们将为您详细介绍如何在Java或Linux上的JRuby中找到我的PID?的内容,并且讨论关于linux获取java的pid的相关问题。此外,我们还会涉及一些关于java – RubyMine在linux上、java – 在jruby中使用fxml、java – 在嵌入式JRuby中执行Ruby脚本时,可以使用gem吗?、java – 如何在jruby9.1.2.0中使用gpg加密加密文件?的知识,以帮助您更全面地了解这个主题。

本文目录一览:

如何在Java或Linux上的JRuby中找到我的PID?(linux获取java的pid)

如何在Java或Linux上的JRuby中找到我的PID?(linux获取java的pid)

我需要找到Linux平台上当前正在运行的进程的PID(它可以是与系统有关的解决方案)。Java不支持获取进程ID,并且JRuby当前在Ruby方法Process.pid中存在一个错误。

还有另一种获取PID的方法吗?

答案1

小编典典

如果安装了procfs,则可以通过/ proc /
self符号链接找到进程ID,该链接指向一个名为pid的目录(这里还有文件以及其他相关信息,包括PID,但该目录为在这种情况下,您需要)。

因此,使用Java,您可以执行以下操作:

String pid = new File("/proc/self").getCanonicalFile().getName();

在JRuby中,您可以使用相同的解决方案:

pid = java.io.File.new("/proc/self").canonical_file.name

java – RubyMine在linux上

java – RubyMine在linux上

我在ubuntu中是新的,有一个问题.我不能启动 Rubymine 4:
kvet@Kvet-Notebook:~/Rubymine-4.0.3/bin$java -version
java version "1.7.0_03"
OpenJDK Runtime Environment (IcedTea7 2.1.1pre) (7~u3-2.1.1~pre1-1ubuntu2)
OpenJDK 64-Bit Server VM (build 22.0-b10,mixed mode)
kvet@Kvet-Notebook:~/Rubymine-4.0.3/bin$./rubymine.sh
OpenJDK Runtime Environment (IcedTea7 2.1.1pre) (7~u3-2.1.1~pre1-1ubuntu2)
OpenJDK 64-Bit Server VM (build 22.0-b10,mixed mode)
OpenJDK 64-Bit Server VM (build 22.0-b10,mixed mode)
WARNING: You are launching the IDE using OpenJDK Java runtime.

         THIS IS STRICTLY UNSUPPORTED DUE TO KNowN PERFORMANCE AND GRAPHICS PROBLEMS!

NOTE:    If you have both Oracle (Sun) JDK and OpenJDK installed
         please validate either RUBYmine_JDK,JDK_HOME,or JAVA_HOME environment variable points to valid Oracle (Sun) JDK installation.
         See http://ow.ly/6TuKQ for more info on switching default JDK.

Press Enter to continue.

Error: Could not find or load main class com.intellij.idea.Main

我试图安装openjdk6和同样的错误.我不知道我该怎么做

解决方法

我最近有这个([ ERROR: cannot start RubyMine. No JDK found. JDK Version? + desktop link]).

Answer: Install java and check your path:

下载oracle7 jdk在:
http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html

按照以下说明:
http://www.webupd8.org/2011/09/how-to-install-oracle-java-7-jdk-in.html例如

下载java(上)后:将下载的Oracle Java JDK归档解压缩到主文件夹,并将新创建的文件夹重命名为“java-7-oracle”.

sudo mv its_name java-7-oracle

安装它:

cd
sudo mkdir -p  /usr/lib/jvm/ #just in case
sudo mv java-7-oracle/ /usr/lib/jvm/
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install update-java
sudo update-java

核实:

java -version
javac -version

java – 在jruby中使用fxml

java – 在jruby中使用fxml

我已经看过如何用Java编写原始JavaFX代码,如何用Java编写FXML代码,如何编写raw JavaFX code in JRuby,但似乎无法找到使用FXML与JRuby的任何内容.目前可以在JRuby中使用FXML吗?如果是这样,有没有很好的教程?

更新:JRubyFX 0.9.1 and later have FXML support

解决方法:

可以将fxml与jruby一起使用.

我找不到任何教程,所以我编写了我的第一个Ruby程序.程序demonstrates using fxml with jruby.这是我写给demonstrate using fxml with java的早期演示的转换.

该程序的ruby版本的输出:

java – 在嵌入式JRuby中执行Ruby脚本时,可以使用gem吗?

java – 在嵌入式JRuby中执行Ruby脚本时,可以使用gem吗?

碰巧我需要对这个 Ruby script进行单元测试.这是一个基于 Sinatra的Web应用程序,它使用了几个宝石.

我在Java方面比在Ruby方面有更多的经验,时间非常重要(优雅不是),所以我想我可能会更快,如果我在JUnit类中执行该脚本并模拟它所依赖的所有子系统(Web服务器),数据库).这样我就可以使用我的Java技能来测试Ruby系统.它就像你可以在一个Java程序中嵌入Ruby一样.

问题:我可以在嵌入式Ruby中使用gem,i.即创建一个可以在任何机器(Windows,Linux,Mac)上执行测试的Java程序,并且不需要我手动在其上安装几个宝石?如果有,怎么样?

注意:它们需要是真正的宝石,嘲笑都很好.

更新1(25.01.2017 13:14):一个明显的解决方案是将该脚本的逻辑提取到一个没有依赖项的单独的Ruby文件中.这可能是代码的80%.然后,即使没有宝石,我也可以测试该逻辑文件.

解决方法

我假设你正在使用JRuby.检查 this和 this.有了这个,你可以做相反的事情并在Jruby内部使用Junit.

java – 如何在jruby9.1.2.0中使用gpg加密加密文件?

java – 如何在jruby9.1.2.0中使用gpg加密加密文件?

我正在使用gpg加密加密文件,然后将其发送到我的j ruby项目中.但是我没有找到足够的资源.我试过使用 ruby-gpgme,但jruby不支持C库.我试着阅读 Bouncy Castle,但是我被类文档压倒了,没有找到一个用于加密文件的简单文章.

Vivek在this年的回答接近我的解决方案,但解决方案只有解决方案.我目前正在关注this article,并试图将jruby中的java代码接口无效.我认为encryptFile函数是我需要的,如下所示:

public static void encryptFile(
        OutputStream out,String fileName,PGPPublicKey encKey,boolean armor,boolean withIntegrityCheck)
        throws IOException,NoSuchProviderException,PGPException
    {
        Security.addProvider(new BouncyCastleProvider());

        if (armor) {
            out = new ArmoredOutputStream(out);
        }

        ByteArrayOutputStream bOut = new ByteArrayOutputStream();
        PGPCompressedDataGenerator comData = new PGPCompressedDataGenerator(PGPCompressedData.ZIP);

        PGPUtil.writeFiletoLiteralData(
                comData.open(bOut),PGPLiteralData.BINARY,new File(fileName) );

        comData.close();

        BcPGPDataEncryptorBuilder dataEncryptor = new BcPGPDataEncryptorBuilder(PGPEncryptedData.TRIPLE_DES);
        dataEncryptor.setWithIntegrityPacket(withIntegrityCheck);
        dataEncryptor.setSecureRandom(new SecureRandom());

        PGPEncryptedDataGenerator encryptedDataGenerator = new PGPEncryptedDataGenerator(dataEncryptor);
        encryptedDataGenerator.addMethod(new BcpublicKeyKeyEncryptionMethodGenerator(encKey));

        byte[] bytes = bOut.toByteArray();
        OutputStream cOut = encryptedDataGenerator.open(out,bytes.length);
        cOut.write(bytes);
        cOut.close();
        out.close();
    }

)

我得到以下错误:

NoMethodError: undefined method `ZIP' for Java::OrgBouncycastleOpenpgp::PGPCompressedData:Class

PGPCompressedDataGenerator comData = new PGPCompressedDataGenerator(PGPCompressedData.ZIP);

如果您可以通过代码或使用加密文件在jruby作为一个整体使用gpg来帮助我,这将是一个很大的帮助.

更新1
ZIP值表示为整数值的常量,并列在this页.

更新2
我做到了功能:

PGPEncryptedDataGenerator encryptedDataGenerator = new PGPEncryptedDataGenerator(dataEncryptor);
    encryptedDataGenerator.addMethod(new BcpublicKeyKeyEncryptionMethodGenerator(encKey)); // encKey is class PGPPublicKey's instance

我有从OS生成的公钥.我如何从公钥字符串创建一个PGPPublic Key实例encKey?

解决方法

我找不到足够的答案或宝石来做,包括项目文件夹中的pgp库.所以我已经把 this repo到 this repo分配给了rails和系统的gpg库.它适用于ubuntu.我没有在其他机器上测试过.

加密:

在机器上安装了公钥

encryptObj = Gpgr::Encrypt::GpgFileForEncryption.new
encryptObj.email_address = <email_of_gpg_owner>
encryptObj.file = <path_to_file_to_encrypt>
encryptObj.file_output = <path_to_output_file>
encryptObj.encrypt

解密

在带有私钥的机器中

decryptObj = Gpgr::Decrypt::GpgFileForDecryption.new
decryptObj.file = <path_to_file_to_decrypt>
decryptObj.file_output = <path_to_output_file>
decryptObj.decrypt

关于如何在Java或Linux上的JRuby中找到我的PID?linux获取java的pid的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于java – RubyMine在linux上、java – 在jruby中使用fxml、java – 在嵌入式JRuby中执行Ruby脚本时,可以使用gem吗?、java – 如何在jruby9.1.2.0中使用gpg加密加密文件?的相关知识,请在本站寻找。

本文标签: