相关疑难解决方法(0)

JDK和JRE有什么区别?

JDK和JRE有什么区别?
他们的角色是什么,我应该何时使用其中一个?

java

857
推荐指数
17
解决办法
64万
查看次数

java.exe程序是实际的VM吗?

JDK附带了java.exe(用于Windows)程序.您可以使用它从命令行启动程序.

维基百科说它是'类加载器','是类文件的解释器'.

这是真正的全面JVM吗?它是一个"更小,更轻巧"的JVM吗?还有别的吗?

java jvm

10
推荐指数
3
解决办法
858
查看次数

使用新版本的运行时(8.x)的旧版Java.exe(7.1)的含义

我们的应用程序嵌入了JRE.该应用程序错误地附带了一个mashup(7.x版本的java.exe和8.x版本的其余JRE).

我可以确认运行v.1.7 java.exe的进程使用Process Explorer使用v.1.8 java运行时.我很惊讶运行时或二进制文件没有检测到异常并放弃JVM创建!

同样的含义是什么?安全问题 ?稳定性问题?我没有浏览java.exe的源代码.从我对java.exe二进制文件的初步调查,我可以看出它不仅仅是一个存根.除了USER32.dll,ADVAPI32.dll,COMCTL32.dll之外,它还调用了100种不同的KERNEL32.DLL API.

当然,我们可以(而且我们会)解决这个错误.但对于使用上述异常的几种当前生产系统是否有影响?如果是的话,他们是什么?

java incompatibility

9
推荐指数
1
解决办法
200
查看次数

创建名为“ {java}”的线程(即轻量级进程)是为了什么?

我写了一个Java程序,它会休眠一段时间:

package com.mycompany.app;

import java.lang.System;
import java.util.concurrent.TimeUnit;

public class Main {
    public static void main(String[] args) {
    System.out.println("the current process's pid is " + ProcessHandle.current().pid());
    try {
        TimeUnit.SECONDS.sleep(200);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        System.out.println("Hello World!"); // Prints the string to the console.

    }
}
Run Code Online (Sandbox Code Playgroud)

我使用以下程序运行该程序:

$ java -cp target com.mycompany.app.Main 
the current process's pid is 10172
Run Code Online (Sandbox Code Playgroud)

我检查了Ubuntu创建的运行它的过程:

$ pstree -pau -l -G -s 10172
systemd,1 splash
  ??lxterminal,3194,t
      ??bash,12150
          ??java,10172 -cp target com.mycompany.app.Main
              ??{java},10173
              ??{java},10174
              ??{java},10175
              ??{java},10176
              ??{java},10177
              ??{java},10178 …
Run Code Online (Sandbox Code Playgroud)

java linux jvm

6
推荐指数
1
解决办法
140
查看次数

System.out.println 在线程级别是如何工作的?

我正在研究在一个简单的HelloWorldjava 程序上进行了哪些系统调用。通过一个简单的strace我注意到没有write电话,我发现这是可疑的:

...
mprotect(0x7f0bcd852000, 4096, PROT_READ) = 0
mprotect(0x7f0bce915000, 790528, PROT_READ) = 0
getpid()                                = 27931
munmap(0x7f0bcf6ac000, 174284)          = 0
getpid()                                = 27931
mmap(NULL, 1052672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f0bcf5d6000
clone(child_stack=0x7f0bcf6d5fb0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f0bcf6d69d0, tls=0x7f0bcf6d6700, child_tidptr=0x7f0bcf6d69d0) = 27932
futex(0x7f0bcf6d69d0, FUTEX_WAIT, 27932, NULLHello, World
) = 0
munmap(0x7f0bbfa6c000, 140063364)       = 0
close(3)                                = 0
exit_group(0)                           = ?
+++ exited with 0 +++
Run Code Online (Sandbox Code Playgroud)

因此,正如您在上面看到的,在正常strace调用中,只会进行一次futex调用,该调用正在等待字符串地址。

因此,我strace使用-f参数运行以查看所有线程:

[pid 28249] pread64(3, …
Run Code Online (Sandbox Code Playgroud)

java multithreading jvm java-threads

2
推荐指数
1
解决办法
91
查看次数

Java编译器是JVM的一部分吗?

我正在阅读一些有关JVM的文章,并发现了一些令人困惑的信息。

例如此处:http : //www.cs.cmu.edu/~jcarroll/15-100-s05/supps/basics/history.html

它说:“实际上,Java编译器通常被称为JVM编译器(对于Java虚拟机)”。

此外,如果Java编译器是否是JVM的一部分,我将找不到确切的答案。我知道JVM是解释器,但我读到它也进行了一些编译。而且,据我所知,JVM是JRE的一部分。JDK的javac部分和JDK的JRE部分。

那么javac是JVM的一部分吗?我认为不是,但是不确定。

java jvm javac

1
推荐指数
2
解决办法
369
查看次数

jps 进程是 JVM 进程吗?

在 Ubuntu 上,man jps

jps - 列出目标系统上已检测的 Java 虚拟机 (JVM)。

“经过检测的 Java 虚拟机”是什么意思?

$ jps -v
29584 Jps -Dapplication.home=/usr/lib/jvm/java-11-openjdk-amd64 -Xms8m -Djdk.module.main=jdk.jcmd
Run Code Online (Sandbox Code Playgroud)

根据定义,jps 进程是 JVM 进程吗?

jps 是一个 ELF 文件,而不是从 Java 程序编译的 JVM 字节码程序:

$ file /usr/lib/jvm/java-11-openjdk-amd64/bin/jps
/usr/lib/jvm/java-11-openjdk-amd64/bin/jps: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, for GNU/Linux 3.2.0, BuildID[sha1]=3f48c70ab711b493ee793c92c19b3a884896bb4d, stripped

$ jps -v
16462 Jps -Dapplication.home=/usr/lib/jvm/java-11-openjdk-amd64 -Xms8m -Djdk.module.main=jdk.jcmd
Run Code Online (Sandbox Code Playgroud)

java jvm

1
推荐指数
1
解决办法
454
查看次数