Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果其他JAR使用64位编译,那么使用32位java构建是否安全?_Java_Jvm_64 Bit_32 Bit - Fatal编程技术网

如果其他JAR使用64位编译,那么使用32位java构建是否安全?

如果其他JAR使用64位编译,那么使用32位java构建是否安全?,java,jvm,64-bit,32-bit,Java,Jvm,64 Bit,32 Bit,我有一个64位系统来构建一个java项目。现在我只能用32位的机器了。使用javacx32和javacx64时,字节码会有什么不同吗。i、 我需要发送一个bug修复,我不确定我是否可以发送一个用javacx32编译的jar文件,如果所有其余的jar都是用x64编译的 找到了这个,但我还是不太确定 它应该工作得很好,正如你在回答中提到的那样,你链接的Java字节码是完全独立于平台的它应该工作得很好,正如你链接的Java字节码是完全独立于平台的就像链接和其他人说的:它会很好 可能让您困惑的是JIT编

我有一个64位系统来构建一个java项目。现在我只能用32位的机器了。使用javacx32和javacx64时,字节码会有什么不同吗。i、 我需要发送一个bug修复,我不确定我是否可以发送一个用javacx32编译的jar文件,如果所有其余的jar都是用x64编译的

找到了这个,但我还是不太确定


它应该工作得很好,正如你在回答中提到的那样,你链接的Java字节码是完全独立于平台的

它应该工作得很好,正如你链接的Java字节码是完全独立于平台的

就像链接和其他人说的:它会很好

可能让您困惑的是JIT编译器和javac编译器之间的差异。JIT编译器是虚拟机的一部分,与javac不同,它在32位和64位Windows机器上具有不同的默认设置。这将影响运行由javac编译的字节码时的执行速度和内存使用等性能,但不会影响由javac编译的代码的兼容性。javac的输出将在任何兼容的JVM上运行


查看您的评论,我认为这些信息也可能对您有所帮助:Java代码调用.dll/。因此,只需调用带有本机修饰符的方法,就像在public native byte[]doFoobyte[]img;中一样;。通常,这些方法的行为在所有系统中都被指定为相同,有些行为未指定,请参见FileChannel。除非您为其提供修复的项目真的很奇怪,否则Java几乎总是系统无关的,这意味着Java代码只处理与系统无关的行为。您应该很少看到在不同系统上执行不同操作的Java源代码。如果您只编写Java代码,那么您的修复程序应该可以跨项目部署到的所有系统工作。但这不能保证。查看您使用的任何类和方法的文档,以确保它们从Java源代码中完全抽象出操作系统。

就像链接和其他人说的那样:这很好

可能让您困惑的是JIT编译器和javac编译器之间的差异。JIT编译器是虚拟机的一部分,与javac不同,它在32位和64位Windows机器上具有不同的默认设置。这将影响运行由javac编译的字节码时的执行速度和内存使用等性能,但不会影响由javac编译的代码的兼容性。javac的输出将在任何兼容的JVM上运行


查看您的评论,我认为这些信息也可能对您有所帮助:Java代码调用.dll/。因此,只需调用带有本机修饰符的方法,就像在public native byte[]doFoobyte[]img;中一样;。通常,这些方法的行为在所有系统中都被指定为相同,有些行为未指定,请参见FileChannel。除非您为其提供修复的项目真的很奇怪,否则Java几乎总是系统无关的,这意味着Java代码只处理与系统无关的行为。您应该很少看到在不同系统上执行不同操作的Java源代码。如果您只编写Java代码,那么您的修复程序应该可以跨项目部署到的所有系统工作。但这不能保证。查看文档中的任何类和方法,确保它们从Java源代码中完全抽象出操作系统。

您提供的链接中的答案非常清楚-您关心什么?字节码只是平台无关的…我关心的是我有一些依赖于平台的dll/so文件。那么,为什么还要麻烦使用64位编译器呢?这样您就不必只部署Java字节码了?请相应地更新您的问题!我的修复程序是纯JAVA的。但是我用它分发了一些x64 DLL。这将不会以任何方式被触及。现在它可能变得相当复杂-没有代码分析,没有人能够回答您的问题。如果你不确定你真正改变了什么,考虑一个完整的集成/系统测试。你所提供的链接中的答案很清楚-你有什么担心?字节码只是平台无关的…我关心的是我有一些依赖于平台的dll/so文件。那么,为什么还要麻烦使用64位编译器呢?这样您就不必只部署Java字节码了?请相应地更新您的问题!我的修复程序是纯JAVA的。但是我用它分发了一些x64 DLL。这将不会以任何方式被触及。现在它可能变得相当复杂-没有代码分析,没有人能够回答您的问题。如果你不确定你真正改变了什么,考虑一个完整的集成/系统测试。然后处理64位的依赖关系在哪里?我有一些低级的图像处理C++动态加载。java如何与64位dll进行交互?我假设它在x32下不起作用,但在x64中表现得非常好
JVM。这里的一个例外是DLL(包括本机代码DLL)不能跨越平台边界。如果您构建一个jar文件,并且包含一个平台的本机DLL,而不是另一个平台,那么它只能在该平台上使用这些本机函数。这将是一个例外情况。纯java代码本身没有x64/x86依赖项;字节码在任何JVM中运行都是相同的,甚至是完全不同的硬件。那么64位依赖关系在哪里处理呢?我有一些低级的图像处理C++动态加载。java如何与64位dll进行交互?我假设它在x32下不起作用,但在x64中表现得非常好。64位依赖项都在JVM中处理。这里的一个例外是DLL(包括本机代码DLL)不能跨越平台边界。如果您构建一个jar文件,并且包含一个平台的本机DLL,而不是另一个平台,那么它只能在该平台上使用这些本机函数。这将是一个例外情况。纯java代码本身没有x64/x86依赖项;字节码在任何JVM中都运行相同的代码,甚至是完全不同的硬件。