1

我处于需要创建一个简单的启动器的情况,它允许我选择使用不同版本的 java 启动的网址。我研究了几个网站。让用户更改 Windows 设置不是一种选择,因为它会产生过多的支持电话或用户没有权限。我想要的是一种编程方式来设置或更改用于启动 url 的 java 版本。我见过专有系统制作带有 gui 的启动器,允许您更改地址和 java 版本,然后在浏览器中启动它。我是开发新手,显然无法理解使用哪些技术。

请你指出我正确的方向。我很乐意编写 guis(在 c# 或 java 中)我只需要知道如何编写启动按钮的函数?

function launchbutton(url, javaversion)

{

If (javaversionselect == 1.3)
{
open url in default browser running java version 1.3
}

If (javaversionselect == 1.4)
{
open url in default browser running java version 1.4
}

If (javaversionselect == 1.5)
{
open url in default browser running java version 1.5
}

If (javaversionselect == 1.6)
{
open url in default browser running java version 1.6}
}
4

3 回答 3

0

您可以编写一个小程序来完成它。编译这样的东西,使用javac -target 1.3

public class Redirector
extends Applet {
    @Override
    public void start() {
        String newURL;

        Package pkg = Object.class.getPackage();
        if (pkg.isCompatibleWith("1.7")) {
            newURL = "java17.html";
        } else if (pkg.isCompatibleWith("1.6")) {
            newURL = "java16.html";
        } else if (pkg.isCompatibleWith("1.5")) {
            newURL = "java15.html";
        } else if (pkg.isCompatibleWith("1.4")) {
            newURL = "java14.html";
        } else {
            newURL = "java13.html";
        }

        try {
            getAppletContext().showDocument(new URL(newURL));
        } catch (MalformedURLException e) {
            showStatus(e.toString());
        }
    }
}

如果你真的想让用户自己选择 Java 版本,你可以在你的小程序中为此创建 UI 元素:

public class Redirector
extends Applet
implements ActionListener {
    private Choice list;

    @Override
    public void init() {
        try {
            EventQueue.invokeAndWait(new Runnable() {
                public void run() {
                    list = new Choice();
                    list.add("1.7");
                    list.add("1.6");
                    list.add("1.5");
                    list.add("1.4");
                    list.add("1.3");

                    Button button = new Button("Launch");
                    button.addAtionListener(Redirector.this);

                    add(new Label("Java version:"));
                    add(list);
                    add(button);
                }
            });
        } catch (InvocationTargetException e) {
            throw new RuntimeException(e);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    public void actionPeformed(ActionEvent event) {
        String newURL;
        String version = list.getSelectedItem();
        if (version.equals("1.7")) {
            newURL = "java17.html";
        } else if (version.equals("1.6")) {
            newURL = "java16.html";
        } else if (version.equals("1.5")) {
            newURL = "java15.html";
        } else if (version.equals("1.4")) {
            newURL = "java14.html";
        } else {
            newURL = "java13.html";
        }

        try {
            getAppletContext().showDocument(new URL(newURL));
        } catch (MalformedURLException e) {
            showStatus(e.toString());
        }
    }
}
于 2013-02-26T11:55:20.070 回答
0

您无法更改应用程序中使用的 Java 版本,例如“IE”或“Chrome”,您唯一的解决方案是使用某种嵌入式浏览器

  • 浏览器
  • 来自 Mozilla 的 XPCOM
  • 浏览源代码并了解 Eclipse 如何嵌入他们的浏览器
于 2013-02-26T04:39:47.297 回答
0

Bare Bones Browser Launcher 将检测 java 版本并使用适当的调用。

http://www.centerkey.com/java/browser/

于 2013-02-26T02:47:12.477 回答