Tag: jar

从jar内部加载ResourceBundle

我已经看到了一些关于如何通过getResourceAsStream在jar中加载特定文件的答案,我可以管理它。 但是我面对的是一些非常具体的内容,我在论坛上找不到相关答案。 这是配置: 我有一个jar文件,其conf目录包含2个属性文件messages_en_US.properties和messages_fr_FR.properties 。 加载这些资源的经典方法是使用 ResourceBundle.getBundle(“messages”, java.util.Locale.getDefault()); 如果文件在磁盘上,则在programm类路径引用的目录中,这可以正常工作。 但我不知道如何管理ResourceBundle.getBundle的使用和从jar中使用资源。 实际上,因为我看不到通过getResourceAsStream的任何桥接(或者这意味着我自己管理语言环境以指定整个资源文件名,这不是很聪明)。 有人可以帮忙吗? 谢谢。

Java命令行Jar文件

我已经创建了一些.jar文件(使用Eclipse的导出function),但它们都是GUI。 我想创建一个严格命令行的.jar文件; 这可能吗?

Eclipse – 将所需的库提取/打包到同一个Runnable JAR中

使用Eclipse将项目导出为Runnable JAR文件时,有三种选择: 1. Extract required libraries into generated JAR 2. Package required libraries into generated JAR 3. Copy required libraries into a sub-folder next to the generated JAR 但是,似乎只能从Runnable JAR File Export窗口中选择三个选项中的一个。 我想知道是否有一些方法可以混淆这些方法,例如,在打包其余文件的同时提取一些文件? 注意:我需要这个,因为我的一个JAR文件包含大量对其他文件的引用,所以1不能是一个选项,我担心2可能会给我带来一些问题。 谢谢!

尝试创建jar时清单文件中的行太长

在尝试构建jar时,我遇到了太长的行错误。 清单文件中的长行是Class-Path行,因为应用程序使用了许多第三方库。 不用说,我正在使用Windows :-(和Eclipse Java 1.6 我尝试过Class-Path: lib或Class-Path: lib/但它们不起作用。

无法从不同jar中的同一个包访问超类的受保护成员

我有一个奇怪的问题,当我试图插入我的程序时,我无法弄明白这个问题。 另一个问题是我无法创建一个简单的测试用例,因为每次我尝试它都有效。 必须有一些我不知道的并发症。 但我会尽可能清楚地描述情况,以防任何人听起来都很熟悉。 我有一个名为Seed的基类,它是主应用程序的一部分,由系统类加载器加载。 我有一个插件,其中包含一个类Road,它是Seed的子类。 它在运行时从单独的jar文件加载。 类Road引用了Seed.garden字段,定义为: 保护最终花园; 请注意,我没有收到编译错误。 当插件jar包含在系统类路径中时,我也不会遇到运行时错误。 只有当我的主应用程序使用新的类加载器(系统类加载器作为其父类)加载插件时才会出现错误。 错误是: java.lang.IllegalAccessError:尝试从类package.Road $ 4访问字段package.Seed.garden 它必须与子类由超类不同的类加载器加载这一事实有关,但我找不到任何官方原因,为什么它不起作用。 另外,就像我说的,当我尝试用简单的测试用例(包括单独的jar,用不同的类加载器加载子类等)重现问题时,我没有得到错误。 我也不太可能违反访问规则,因为当类由同一个类加载器加载时它工作,我不会遇到编译错误。 我没有想法! 有没有人认识到这个问题,或者有一些指示我的方向可以看? 救命!

如何停止执行的Jar文件

感觉这是一个愚蠢的问题,但我似乎无法弄明白。 当我在Windows上运行* .jar文件时,它不会在任务管理器进程中出现。 我怎么能终止它,我尝试过TASKKILL,但它也不适用于我。

为什么java会抱怨有大量条目的jar文件?

我偶然发现了以下问题 – 当我创建包含超过65k条目的.jar文件时,java会抱怨“无效或损坏jarfile”。 例: $ # in fresh dir $ for i in {1..70000}; do touch $i; done $ jar cf app.jar {1..70000} $ java -jar app.jar Error: Invalid or corrupt jarfile app.jar 但如果我使用少量文件,它的工作原理如下: $ jar cf app.jar {1..60000} $ java -jar app.jar no main manifest attribute, in app.jar 我听说旧的.zip文件格式有65k文件限制,但Java 7默认情况下应该使用ZIP64。 为什么会这样? 有办法解决吗?

为什么有些资源文件放在META-INF目录下

我想知道为什么有些资源文件放在JAR的META-INF目录下? 我总是将test.properties之类的资源放在root direccory下。 将它们放入META-INF有什么好处?

如何在Eclipse的Java EE透视图中隐藏引用的库?

Eclipse的普通Java透视图似乎隐藏了引用库(在项目的“Referenced Libraries”文件夹中)。 遗憾的是,Java EE透视图似乎没有相同的function,并且启用它是不直观的。 任何人都可以对这个问题有所了解吗?

如何访问jar文件中的文件夹内容?

我需要看一下特定包中的文件名。 目前,我正在做以下事情: ClassLoader loader = Thread.currentThread().getContextClassLoader(); URL packageUrl = loader.getResource(getPackage().replace(‘.’, ‘/’)); File packageDir = new File(packageUrl.getFile()); // Work with the files inside the directory 这实际上在Eclipse中工作正常,因为默认情况下它不打包我的应用程序。 但是,当我从jar文件运行它时,我在packageUrl上得到一个NullPointerException 。 那么,我如何获得jar中包的内容列表? 我的研究建议使用getResourceAsStream ,但我不太确定如何使用InputStream探索目录,如果可能的话。