我有一个使用JDK1.7编译的jar文件,我想在加载时检查一下我的jar运行的java运行时环境是否是1.7或更新的。有办法做到这一点吗?
我尝试使用System.getProperty(“java.version”),但这没有帮助,因为我的类版本是51,而JRE1.6拒绝加载它。
我也有同样的要求,我通过以下方式解决了它:
拥有一个“Startup”类,它对任何新的JDK类或应用程序的任何类都没有任何依赖(=导入)。你没按名字导入主类!
类似于:
如果检查成功,则使用反射加载主类,并启动它的主方法(或您使用的任何方法)。类似这样的事情:
public class MyStarter
{
public static void main(String[] args)
{
String version = System.getProperty("java.version", null);
boolean isVersionOK = ... ;
if (!isVersionOK)
{
System.err.println("Wrong Java version detected");
// or display some messagebox using JOptionPane
System.exit(1);
}
Class mainClass = Class.forName("com.foo.MyMain");
Method main = mgr.getDeclaredMethod("main", new Class[] { String[].class });
main.invoke(null, new Object[] { args });
}
}
再次强调:确保MyStarter不包含任何在Java1.2(或任何您要目标的Java版本)中不可用的对应用程序或类的导入。
然后用-source1.2-target1.2
编译mystarter
(并且只编译那个类),用常规编译器编译其余的类(例如,创建Java7.class文件)。
如果生成一个可html" target="_blank">执行jar,那么添加com.foo.mystarter
作为main-class:
属性。
Antbuild.xml
中的“compile”目标如下所示:
<-- compile the starter class for Java 1.2 --> <javac destdir="${build}" srcdir="${src}" target="1.2" source="1.2" encoding="ISO-8859-1" includeantruntime="false" includes="com/foo/MyStarter.java"/> <-- compile the rest with for Java 1.6 --> <javac destdir="${build}" srcdir="${src}" target="1.6" source="1.6" includeantruntime="false" encoding="ISO-8859-1"> <exclude name="com/foo/MyStarter.java"/> <classpath> .... </classpath> </javac>
然后将所有内容放入一个jar文件中。
我正在使用生成cacerts。 然后我使用,但我会遇到这样的例外: 这是兼容性问题吗?使用一个版本的java生成的Cacert是否与另一个版本的java不兼容?
这本书讲述的是 Swift 5.1,它是 Xcode 11 中包含的默认版本。你可以使用 Xcode 11 来编译用 Swift 5.1、Swift 4.2 或 Swift 4 写的代码。 当你使用 Xcode 11 编译 Swift 4 和 Swift 4.2 代码时,大部分 Swift 5.1 的功能是可用的。也就是说,下面的变更仅对 Swift 5.1 或后续版本生效: 返回不透明类型的函数
我目前安装了Java8(更新171)和Oxygen.3a(4.7.3a)(Eclipse版本)。我以前下载过Java10,但我读到有一个bug,WindowBuilder不能在该版本上工作,它被推荐为版本8,这是我下载并安装的版本(在卸载版本10后)。但问题还在。 我能做些什么来解决这个问题?谢谢你。
支持的版本 主版本 PHP兼容性 初始发行 支持 PHPUnit 9 PHP 7.3, PHP 7.4 2020年2月7日 支持将于2022年2月4日结束 PHPUnit 8 PHP 7.2, PHP 7.3, PHP 7.4 2019年2月1日 支持将于2021年2月5日结束 之前的版本 主版本 PHP兼容性 初始发行 支持 PHPUnit 7 PHP 7.1, PHP 7.2, PHP 7.3
通过graphdb启动独立版本时。cmd给出了以下消息:“这个GraphDB发行版需要Java 8、11或12,但您有Java 15”。但是,启动成功,GraphDB WorkBench可以启动。当我继续运行基于(开放式)Java15的系统时,我是否需要在未来的使用中预期一些“隐藏”的问题?
问题内容: 我刚刚安装了Eclipse Oxygen并创建了一个JFrame项目。从源视图切换到设计视图时,出现“不兼容的Java版本错误”。 完全错误Desc:Eclipse在0以下运行,但是此Java项目的Java兼容级别为10,因此WindowBuilder将无法从该项目中加载类。对项目使用较低级别的Java,或使用较新的Java版本运行Eclipse。 我在Windows中检查了版本->首