gpt4 book ai didi

java - 无法在 Linux 中找到正确的架构类型

转载 作者:太空宇宙 更新时间:2023-11-04 04:56:22 25 4
gpt4 key购买 nike

问题如何从外部java程序检查Ubuntu 16.04操作系统上安装的java是32位还是64位

我的研究 -

1)我使用 uname -a 命令检查了我的 Ubuntu 架构,该命令显示它是 64 位

Linux jalaj-SVF14212SNB 4.4.0-31-generic #50-Ubuntu SMP Wed Jul 13  00:07:12 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

2)我使用检查了给定路径中安装的java版本java -XshowSettings:全部

VM settings:
Max. Heap Size (Estimated): 853.50M
Ergonomics Machine Class: server
Using VM: Java HotSpot(TM) Server VM

Property settings:
awt.toolkit = sun.awt.X11.XToolkit
file.encoding = UTF-8
file.encoding.pkg = sun.io
file.separator = /
java.awt.graphicsenv = sun.awt.X11GraphicsEnvironment
java.awt.printerjob = sun.print.PSPrinterJob
java.class.path = /home/jalaj/Java/jdk1.7.0_80/bin
/home/jalaj/Java/jdk1.7.0_80/jre/bin
JAVA_HOME/lin
.
java.class.version = 51.0
java.endorsed.dirs = /home/jalaj/Java/jdk1.7.0_80/jre/lib/endorsed
java.ext.dirs = /home/jalaj/Java/jdk1.7.0_80/jre/lib/ext
/usr/java/packages/lib/ext
java.home = /home/jalaj/Java/jdk1.7.0_80/jre
java.io.tmpdir = /tmp
java.library.path = /usr/java/packages/lib/i386
/lib
/usr/lib
java.runtime.name = Java(TM) SE Runtime Environment
java.runtime.version = 1.7.0_80-b15
java.specification.name = Java Platform API Specification
java.specification.vendor = Oracle Corporation
java.specification.version = 1.7
java.vendor = Oracle Corporation
java.vendor.url = http://java.oracle.com/
java.vendor.url.bug = http://bugreport.sun.com/bugreport/
java.version = 1.7.0_80
java.vm.info = mixed mode
java.vm.name = Java HotSpot(TM) Server VM
java.vm.specification.name = Java Virtual Machine Specification
java.vm.specification.vendor = Oracle Corporation
java.vm.specification.version = 1.7
java.vm.vendor = Oracle Corporation
java.vm.version = 24.80-b11
line.separator = \n

os.arch = i386os.name = Linux

os.version = 4.4.0-31-generic
path.separator = :

sun.arch.data.model = 32

sun.boot.class.path = /home/jalaj/Java/jdk1.7.0_80/jre/lib/resources.jar
/home/jalaj/Java/jdk1.7.0_80/jre/lib/rt.jar
/home/jalaj/Java/jdk1.7.0_80/jre/lib/sunrsasign.jar
/home/jalaj/Java/jdk1.7.0_80/jre/lib/jsse.jar
/home/jalaj/Java/jdk1.7.0_80/jre/lib/jce.jar
/home/jalaj/Java/jdk1.7.0_80/jre/lib/charsets.jar
/home/jalaj/Java/jdk1.7.0_80/jre/lib/jfr.jar
/home/jalaj/Java/jdk1.7.0_80/jre/classes
sun.boot.library.path = /home/jalaj/Java/jdk1.7.0_80/jre/lib/i386
sun.cpu.endian = little
sun.cpu.isalist =
sun.desktop = gnome
sun.io.unicode.encoding = UnicodeLittle
sun.java.launcher = SUN_STANDARD
sun.jnu.encoding = UTF-8
sun.management.compiler = HotSpot Tiered Compilers
sun.os.patch.level = unknown
user.country = IN
user.dir = /home/jalaj/Downloads
user.home = /home/jalaj
user.language = en
user.name = jalaj
user.timezone =

Locale settings:
default locale = English
default display locale = English (India)
default format locale = English (India)
available locales = ar, ar_AE, ar_BH, ar_DZ, ar_EG, ar_IQ, ar_JO, ar_KW,
ar_LB, ar_LY, ar_MA, ar_OM, ar_QA, ar_SA, ar_SD, ar_SY,
ar_TN, ar_YE, be, be_BY, bg, bg_BG, ca, ca_ES,
cs, cs_CZ, da, da_DK, de, de_AT, de_CH, de_DE,
de_LU, el, el_CY, el_GR, en, en_AU, en_CA, en_GB,
en_IE, en_IN, en_MT, en_NZ, en_PH, en_SG, en_US, en_ZA,
es, es_AR, es_BO, es_CL, es_CO, es_CR, es_DO, es_EC,
es_ES, es_GT, es_HN, es_MX, es_NI, es_PA, es_PE, es_PR,
es_PY, es_SV, es_US, es_UY, es_VE, et, et_EE, fi,
fi_FI, fr, fr_BE, fr_CA, fr_CH, fr_FR, fr_LU, ga,
ga_IE, hi_IN, hr, hr_HR, hu, hu_HU, in, in_ID,
is, is_IS, it, it_CH, it_IT, iw, iw_IL, ja,
ja_JP, ja_JP_JP_#u-ca-japanese, ko, ko_KR, lt, lt_LT, lv, lv_LV,
mk, mk_MK, ms, ms_MY, mt, mt_MT, nl, nl_BE,
nl_NL, no, no_NO, no_NO_NY, pl, pl_PL, pt, pt_BR,
pt_PT, ro, ro_RO, ru, ru_RU, sk, sk_SK, sl,
sl_SI, sq, sq_AL, sr, sr_BA, sr_BA_#Latn, sr_CS, sr_ME,
sr_ME_#Latn, sr_RS, sr_RS_#Latn, sr__#Latn, sv, sv_SE, th, th_TH,
th_TH_TH_#u-nu-thai, tr, tr_TR, uk, uk_UA, vi, vi_VN, zh,
zh_CN, zh_HK, zh_SG, zh_TW
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
where options include:
-d32 use a 32-bit data model if available
-d64 use a 64-bit data model if available
-client to select the "client" VM
-server to select the "server" VM
-hotspot is a synonym for the "client" VM [deprecated]
The default VM is server,
because you are running on a server-class machine.


-cp <class search path of directories and zip/jar files>
-classpath <class search path of directories and zip/jar files>
A : separated list of directories, JAR archives,
and ZIP archives to search for class files.
-D<name>=<value>
set a system property
-verbose:[class|gc|jni]
enable verbose output
-version print product version and exit
-version:<value>
require the specified version to run
-showversion print product version and continue
-jre-restrict-search | -no-jre-restrict-search
include/exclude user private JREs in the version search
-? -help print this help message
-X print help on non-standard options
-ea[:<packagename>...|:<classname>]
-enableassertions[:<packagename>...|:<classname>]
enable assertions with specified granularity
-da[:<packagename>...|:<classname>]
-disableassertions[:<packagename>...|:<classname>]
disable assertions with specified granularity
-esa | -enablesystemassertions
enable system assertions
-dsa | -disablesystemassertions
disable system assertions
-agentlib:<libname>[=<options>]
load native agent library <libname>, e.g. -agentlib:hprof
see also, -agentlib:jdwp=help and -agentlib:hprof=help
-agentpath:<pathname>[=<options>]
load native agent library by full pathname
-javaagent:<jarpath>[=<options>]
load Java programming language agent, see java.lang.instrument
-splash:<imagepath>
show splash screen with specified image
See http://www.oracle.com/technetwork/java/javase/documentation/index.html for more details.

从上面的命令可以清楚地看出我们在 32 位操作系统上使用 32 位 jre。不过,第一点和第二点是矛盾的。

3)另外,下面是我执行 which java 时得到的输出:

/home/jalaj/Java/jdk1.7.0_80/bin/java

Can anyone guide how to install java correctly on given operating system and whether it is 32 bit or 64 bit.

最佳答案

如果您想知道 JVM 是 32 位 还是 64 位 风格,在不运行 JVM 的情况下,您可以检查 java 二进制文件的体系结构。

检查java二进制文件,它是根据PATH环境变量找到的

file -L `which java`

64 位和 32 位二进制的示例输出

/usr/bin/java: ELF 64-bit LSB executable, ...
/usr/bin/java: ELF 32-bit LSB executable, ...

检查特定目录中的二进制文件

file -L /path/to/jre/java

获取预期的 Oracle JDK 检查 Java SE Development Kit 8 Downloads

获得预期的 Oracle JRE 检查 Java SE Runtime Environment 8 Downloads

获取 Ubuntu 的预期 OpenJDK 版本(指令取自 http://openjdk.java.net/install/ )

sudo apt-get install openjdk-8-jre

关于java - 无法在 Linux 中找到正确的架构类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45024613/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com