修复Java代码中的JRE错误并重新编译应用程序
我试着在Windows7上运行一些依赖于旧JRE版本的旧工具 我最近安装了Java运行时环境1.7.0_79。当我尝试启动应用程序时,出现了一个错误: “Sivus需要JRE 1.4或更高版本才能运行。您可以下载JRE 来自……等” 是否有解决/修复此问题或类似问题的方法? 程序主可执行文件打包在SFX ZIP存档中,我解压缩了文件,并找到了,这使得检查。有一个代码:修复Java代码中的JRE错误并重新编译应用程序,java,runtime-error,java-7,code-snippets,sfx,Java,Runtime Error,Java 7,Code Snippets,Sfx,我试着在Windows7上运行一些依赖于旧JRE版本的旧工具 我最近安装了Java运行时环境1.7.0_79。当我尝试启动应用程序时,出现了一个错误: “Sivus需要JRE 1.4或更高版本才能运行。您可以下载JRE 来自……等” 是否有解决/修复此问题或类似问题的方法? 程序主可执行文件打包在SFX ZIP存档中,我解压缩了文件,并找到了,这使得检查。有一个代码: public static boolean checkJavaVersion(){ boolean ok = fal
public static boolean checkJavaVersion(){
boolean ok = false;
String version = System.getProperty("java.version");
if (version.indexOf("1.1") > -1) {
ok = false;
}
else if (version.indexOf("1.2") > -1) {
ok = false;
}
else if (version.indexOf("1.3") > -1) {
ok = false;
}
else if (version.indexOf("1.4") > -1) {
ok = true;
}
else if (version.indexOf("1.5") > -1) {
ok = true;
}
return ok;
}
public static void main(String[] args) {
boolean DEBUG = false;
try {
// check if JRE is over 1.4
if (checkJavaVersion() == false){
JOptionPane.showMessageDialog(
null,
"SiVuS requires JRE 1.4 (or later) to run.\n"
+"You can download the latest JRE from java.sun.com",
"Java Run Time Environment Error",
JOptionPane.WARNING_MESSAGE);
System.exit(1);
}
如何更正此问题并重新编译应用程序?依赖于JRE 1.4的应用程序能否与当前的JRE一起工作?这是一个我如何进行此类修补程序的示例
首先,我建议不要使用“出处”可疑的旧工具。特别是,不是作为一个安全扫描。当然,您可以找到一个更新的工具,并且比这个工具支持得更好 如果您希望继续(并承担风险),那么一种方法是修改该类,重新编译并重建JAR文件,正如@Rustam所建议的那样
另一种方法是使用
main
方法创建一个简单的包装类,该方法调用System.setProperty
来调整“java.version”
属性的值,然后调用realmain
方法。你用JRE 1.4检查过吗?我没有JRE 1.4,它太旧了。p3:这要求编译MyClass.java?我不能只编辑目标myfile.java,然后重新创建SFX可执行文件?提取的SFX包没有任何.jar
文件。有myfile.java和myfile.classMy.jar——例如,如果只有一个java文件可以跳过“-cp…”。我认为仅仅编辑java文件是不够的。所以我应该只使用这个命令来重新创建相应的myfile.class:调用“C:\ProgramFiles(x86)\java\jdk1.7.0\u 79\bin\javac.exe”C:\test\mypackage\MyClass.java
?我只安装了JRE,没有安装JDK。是否有一个单独的JDK版本,或者它唯一与JRE捆绑在一起的版本?单独的-