Tag: jar

如何从servlet上下文中的jar文件中读取xml架构

我有一个maven库项目,有一些类来处理xml消息。 每当我收到其中一条消息时,我都会使用我编写的xml架构文件对其进行validation。 为我进行validation的代码如下所示: public static Document parseXML(final String xml) throws JDOMException, IOException { SAXBuilder builder = new SAXBuilder(“org.apache.xerces.parsers.SAXParser”, true); builder.setFeature(“http://apache.org/xml/features/validation/schema”, true); URL location = CMPMessage.getClass().getResource(XML_SCHEMA_LOCATION); if (null == location) { throw new IOException(“Unable to load schema definition file.”); } builder.setProperty(“http://apache.org/xml/properties/schema/external-schemaLocation”, “http://www.mycompany.de/MyProtocol ” + location); return builder.build(new StringReader(xml)); } 和XML_SCHEMA_LOCATION是这样的: private static final String XML_SCHEMA_LOCATION = […]

URLClassLoader.getResources(“”)(空资源名称)没有给出jar的根

考虑使用URL集合参数化的URLClassLoader , URL集合是扩展目录和jar文件的混合。 例如: URL[] urls = new URL[] { new URL(“file:/D:/work/temp/jars/spring-security-core-3.2.0.RELEASE.jar”), new URL(“file:/D:/work/temp/jars/spring-security-config-3.2.0.RELEASE.jar”), … new URL(“file:/D:/work/temp/domain/bin/”), new URL(“file:/D:/work/temp/web/bin/”), … } URLClassLoader cl = new URLClassLoader(urls); 类加载器正确处理位于包内某处的资源的getResources()请求,如”org/my/package/conf.properties” 。 通过正确处理我的意思是类加载器成功找到目录和jar中的所有匹配项。 在getResources(“”)传递的特殊空字符串名称应该产生所有可用根的URL(在目录和jar中)。 但是, ClassLoader存在一个已知的限制,它只导致返回与目录对应的根。 所有根jar子都被丢弃了。 使用classloader.getURLs[]而不是classloader.getResources(“”)将无法使用,因为我有一个相互依赖的URLClassLoader的复杂图形,因此结果将完全不同。 此外,我的类加载器将由使用getResources(“”)调用的第三方类路径扫描工具使用,以便设置内部搜索库。 这样就无法找到位于jar子里的资源。 我目前有一个工作修复,我从URLClassLoader扩展并手动处理带有空字符串的请求,除了返回URL的返回集合中的目录之外,还强制执行jar的根。 不过我的问题是: 这种限制的概念/技术原因是什么(不返回jar子的路径)? 通过手动修复,我是否违反任何重要合同? 有没有很好的方法来获得理想的行为? 谢谢你的任何想法!

如何从嵌入式JAR文件加载资源

我正在尝试加载嵌入的JAR文件中包含的资源。 该项目实际上是使用具有以下结构的EAR文件部署在JBoss中的: deploy.ear | |-> project.sar | |-> sub_project.jar | | | |-> settings.xml | |-> com/path/project/ | |-> main.class 从main.java我想获得settings.xml的InputStream 。 这样做的正确方法是什么? 我目前的理解是以下代码应该工作,但它返回null : this.getClass().getResourceAsStream(“settings.xml”); 更新 经过一些试验和错误后,以下声明有效: getClass().getResourceAsStream(“/settings.xml”); getClass().getResourceAsStream(“/sub_project.jar/settings.xml”); getClass().getClassLoader().getResourceAsStream(“/settings.xml”); getClass().getClassLoader().getResourceAsStream(“settings.xml”); getClass().getClassLoader().getResourceAsStream(“sub_project.jar/settings.xml”); getClass().getClassLoader().getResourceAsStream(“/sub_project.jar/settings.xml”);

如何在Android Studio中编辑.jar文件

如何使用Android Studio在.jar文件中编辑.class文件中的代码? 我当然已经尝试过编辑它了。 我试图编辑的类是由于某种原因只读。

使用Java在.jar中打开并编辑文件?

您如何打开.jar中的.xml文件并进行编辑? 我知道你可以…… InputStream myStream = this.getClass().getResourceAsStream(“xmlData.xml”); 但是如何打开xmlData.xml,编辑文件并将其保存在.jar中? 我会发现知道并且不想编辑.jar之外的文件很有用… 并且应用程序需要在整个时间内保持运行! 谢谢!

从JAR目录中读取属性文件

我正在创建一个可执行的JAR,它将在运行时从一个文件中读取一组属性。 目录结构将类似于: /some/dirs/executable.jar /some/dirs/executable.properties 有没有办法在executable.jar文件中设置属性加载器类来从jar所在的目录加载属性,而不是硬编码目录。 我不想将属性放在jar本身,因为属性文件需要是可配置的。

使用Eclipse将清单添加到JAR时,标题字段名称无效

我正在使用eclipse开发一个java applet,需要在清单中向Class-Path添加一个外部jar。 我使用记事本创建了清单文件,使用了UTF-8编码并在最后添加了换行符,但是在jar创建过程中尝试添加一个简单的示例清单会导致Eclipse出现以下错误。 invalid header field name: ï>¿Manifest-Version invalid header field name: ï>¿Manifest-Version 我有一种感觉,这是一个简单的配置问题,但我无法弄清楚是什么。 为了测试它,我的清单包括单行 Manifest-Version: 1.0

Juno – Java Build Path – 项目无法读取或不是有效的ZIP文件

我收到此错误: 说明资源路径位置类型存档所需的库:项目“Home”中的“src / Program.java”无法读取或不是有效的ZIP文件主页构建路径构建路径问题 导致此错误的原因是什么?如何解决?

Java:gradle构建失败bootRepackage(在创建jar上)

做一个Web项目意味着:Java(jdk 1.7.0.51)+ Spring框架(+ velocity)+ Hibernate + Gradle + Apache Tomcat。 突然间,出现了一个问题:你无法进行构建。 使用Gradle构建。 16:50:30:执行外部任务’build’…:compileJava:processResources UP-TO-DATE:classes:jar:bootRepackage FAILED FAILURE:构建失败,exception。 *出了什么问题:任务执行失败’:bootRepackage’。 MALFORMED *尝试:使用–stacktrace选项运行以获取堆栈跟踪。 使用–info或–debug选项运行以获取更多日志输出。 BUILD FAILED总时间:14.935秒MALFORMED 可能是什么问题呢? 完整日志: :bootRepackage FAILED FAILURE:构建因exception而失败。 *出了什么问题:任务执行失败’:bootRepackage’。 exception *尝试: 使用–info或–debug选项运行以获取更多日志输出。 *exception是:org.gradle.api.tasks.TaskExecutionException:任务’:bootRepackage’的执行失败。 在org.gradle上的org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)位于org.gradle.api的org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)上的.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskEx ecuter.java:35)。在org.gradle.api.internal.tasks的org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExec uter.java:42)中的internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) .execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.j ava:52)org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)at org.gradle.api.internal.tasks.execution。 ExecuteAtMostOnceTask Executer.execute(ExecuteAtMostOnceTaskExecuter.j ava:43)atg.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:286)at org.gradle.execution.taskgraph.Abs​​tractTaskPlanExecutor $ TaskExecutorWorker.executeTask(AbstractTaskPlanExecut or.java: 79)org.gradle.execution.taskgraph.Abs​​tractTaskPlanExecutor $ TaskExecutorWorker.processTask(AbstractTaskPlanExecut or.java:63)org.gradle.execution.taskgraph.Abs​​tractTaskPlanExecutor $ TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51)at org.gradle。执行.taskgraph.DefaultTaskPlanExecutor $ 1.run(DefaultTaskPlanExecutor.java:33)org.gradle.internal.Factories $ […]

创建Jar文件 – 在其他计算机上不起作用

我正在尝试将我的程序打包成一个JAR文件,以便它可以在多台计算机上使用。 我的程序由userinterface.java , userinterface.java和writer.java 。 用Eclipse编写的程序在我的计算机上运行完美。 导出时,它将在我的计算机上工作,但在其他计算机上导致以下错误: “Could not find the main class: start. Program will exit”. 再次,当我双击它时,我的程序在我的计算机上正常运行。 我试过通过命令提示符创建JAR文件,我的Manifest文件是正确的。 发生什么事?