我有一个第三方可执行 jar 文件,我无权访问其源代码。它是用 Java 8 编译的,它使用一些 javax 包进行 XML 处理。这些位于 Java EE 中,并已从 Java SE 的最新版本中删除。
我想在我无法控制的主机上运行这个第三方 jar 文件。它安装了 Java 11,但不允许我在其上安装 Java 8。
我看过这个答案,它说解决这个问题的方法是用额外的依赖项重建应用程序,以替换从 Java 11 jre 中删除的 Java EE 包。不幸的是,我无法使用该答案,因为我无法访问源代码。我可以改为使用命令的-classpath
参数java -jar
来解决这个问题吗?
如果它是一个可运行的 jar,那么它就有一个META-INF/MANIFEST.MF
设置类路径的文件。
您不需要源代码。只是不能解压缩的jar文件,对于需要额外的第三方jar添加额外的条目到Class-Path
中MANIFEST.MF
文件和JAR它备份。
然后将 jar 文件与其他第三方 jar 一起发送。
例子
假设您的foo.jar
文件使用 JAF (java.activation),即它需要javax.activation-1.2.0.jar
添加到类路径中。
编辑MANIFEST.MF
文件并添加javax.activation-1.2.0.jar
到Class-Path
值的末尾,与现有值用空格分隔。如果没有Class-Path
,请添加:
Class-Path: javax.activation-1.2.0.jar
Run Code Online (Sandbox Code Playgroud)
然后将更新foo.jar
的javax.activation-1.2.0.jar
文件和新的文件发送到同一个文件夹中。
归档时间: |
|
查看次数: |
1782 次 |
最近记录: |