【问题标题】:Can I change the LookAndFeel of a Java Webstart Program我可以更改 Java Web Start 程序的外观吗
【发布时间】:2016-10-18 13:48:26
【问题描述】:

(((我是一名工业建筑工程师(刚毕业),在我最近开始工作的地方,我们使用一个由外部公司开发的 Java 程序来计算工业建筑的价格,包括一切。))

我的桌面上有一个 html 链接,它启动了一个 Java Applet/Web Start (?),我必须单击运行,然后会弹出一个新的(本机窗口)窗口,其中正在运行程序。

一切看起来都超级陈旧、丑陋的皮肤、糟糕的字体,我讨厌它。在旧手册(2013 年)中,该程序(在屏幕截图上)具有原生窗口的外观和感觉。 但是,最新版本看起来很糟糕。

问题:我是否必须联系代码作者@外部公司才能将外观改回原生操作系统?

或者有什么办法让我破解代码并强制一个参数或什么?

我在 Java 方面有点菜鸟,但我学得很快,开枪。

【问题讨论】:

    标签: java html user-interface


    【解决方案1】:

    您可以尝试设置 nimbus 外观。 Nimbus 至少需要 JDK 6。还有更多方法可以做到:https://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/nimbus.html

    正如您在此链接上看到的,您可以在 java 程序中以编程方式完成。

    但是还有其他两种方法可以通过配置来实现:

    1.

    通过添加 JAVA_HOME/lib/swing.properties 文件的以下行:

    swing.defaultlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel 如果 swing.properties 文件尚不存在,则需要创建它。

    2.

    将 Nimbus 指定为特定外观的默认外观 在命令行应用程序,如下: java -Dswing.defaultlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel MyApp

    在第二种情况下,java 命令行(在 JWS 的情况下)来自 .jnlp xml 描述符,它是部署的 JWS 应用程序 jar 文件的一部分。

    .jnlp 中有一个资源部分,如下所示:

      <resources>
        <j2se version="1.7+" java-vm-args="-esa -Xnoclassgc -Xms32m"/>
        ...
      </resources>
    

    您应该使用 nimbus 属性值进行扩展,如下所示:

      <resources>
        <j2se version="1.7+" java-vm-args="-esa -Xnoclassgc -Xms32m"/>
        <property name="swing.laf" value="com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel" />
        <property name="swing.defaultlaf" value="com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel" />
        ...
      </resources>
    

    创建预期的 java 命令行。

    【讨论】:

      【解决方案2】:

      就像编程中的几乎所有东西......

      这取决于。有一种方法可以从 jar 文件中获取 java 代码(java 开发人员使用的术语是“反编译”),但是有一个称为“混淆”的过程有时可以防止这种情况发生。您使用的程序很有可能包含混淆代码。如果代码被混淆,那么你会得到一个不可编译的代码,你几乎需要重写整个代码库。

      这不是唯一的问题,反混淆代码并非 100% 非法,但您可以共享代码或重新编译的程序。如果您选择这条路,请记住这一点。

      要反编译jar文件,可以使用jd-gui。然后你需要将你得到的java文件保存到一个目录中。您可以使用普通的文本编辑器打开这些文件,但我建议您使用 java IDE,例如 Eclipse

      在此之后,很容易更改 GUI 的外观。您可以查看有关此的 java GUI 教程。

      【讨论】:

      • 谢谢,我会检查一下!如果 jar 文件在外部服务器上,几乎无法访问,该怎么办
      • @Jelle WebStart 程序在您的计算机上,但它们会自动检查更新,遗憾的是,您不能这样做。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-30
      相关资源
      最近更新 更多