我试图要求一个带有 jruby 1.7.4 的 jar 并为 Windows 和 Linux 获得不同的结果。我的文件夹布局如下:
/current_folder
|--/lib
|--lib.jar
|--dep.jar
lib.jar 使用 dep.jar 中的一些类,并具有如下清单:
Manifest-Version: 1.0
Main-Class: lib.Main
Class-Path: dep.jar
当我运行 lib.jar 中包含的程序时,Windows 和 Linux 一切正常java -jar absolute/path/to/lib.jar
。
但是当我尝试以下操作时,它仅适用于 Linux。
cd
到current_folder
.- 运行
jirb
。 - 执行
require 'java'
和require 'absolute/path/to/lib.jar'
。 - 使用 lib.jar 中的类。
对于 Windows,它无法从 dep.jar 加载类并失败。
但是,如果 Windows Icd
要lib
文件夹,一切都会重新开始工作。
那么,我做错了什么?我希望一切都能像在 Linux 上一样在 Windows 上工作。即,我希望将 lib.jar 的类路径保留在其清单中;从jirb
.