- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 Eclipse 创建了一些解析器类,我想将其作为 jar 存档提供给另一个项目以进行验证。所以解析器项目看起来像这样:
ParserProject
- src
-- com.package.x
--- ClassA
--- ClassB
- lib
-- external1.jar
-- external2.jar
ClassA
和ClassB
使用外部 jar 文件,例如 Jackson 或一些 Apache commons。为了向另一个项目提供功能,我将整个项目导出为 jar 存档和可执行 jar 存档(右键单击项目 > 导出... > Java > JAR 文件 > 选择所有文件并“导出生成的类文件和资源” > 完成)。
jar 文件已创建,没有任何错误。当我使用parserproject.jar
时在我的验证项目中,我可以使用自动完成访问所有方法,但是当我运行验证项目时,我得到 java.lang.ClassNotFoundException: com.fasterxml.jackson.core.JsonParseException
。
现在三个奇怪的事情:
所有 jackson jar 都包含在解析器项目中。此外,我可以运行 main()
解析器项目中的方法,一切正常,没有 ClassNotFoundException
发生。
当我添加parserproject.jar
时添加到类路径中的验证项目并在 Package Explorer 中打开 jar 存档,parserproject.jar 似乎包含它需要的所有 jar。
对于可执行 jar 存档,所有必需的外部 jar 都包含在 MANIFEST.MF
中。 (Package Explorer > 验证项目 > 引用的库 > + 除了 parserproject.jar > META-INF > MANIFEST.MF)。它看起来像这样:
Manifest-Version: 1.0 Rsrc-Class-Path: ./ json-20140107.jar jackson-annotations-2.5.4.jar ja ckson-core-2.5.4.jar jackson-databind-2.5.4.jar commons-io-2.4.jar co mmons-validator-1.3.1.jar slf4j-api-1.7.5.jar slf4j-log4j12-1.7.5.jar json-schema-validator-2.2.6.jar jackson-module-jsonSchema-2.4.4.jar juniversalchardet-1.0.3.jar snakeyaml-1.15.jar commons-beanutils-1.7. 0.jar commons-digester-1.6.jar commons-logging-1.0.4.jar joda-time-2. 8.1.jar jopt-simple-4.6.jar jsr305-3.0.0.jar json-schema-core-1.2.5.j ar libphonenumber-6.2.jar jackson-coreutils-1.8.jar commons-lang-2.6. jar guava-16.0.1.jar msg-simple-1.1.jar btf-1.2.jar mailapi-1.4.3.jar uri-template-0.9.jar Class-Path: . Rsrc-Main-Class: com.package.SchemeValidator Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
parserproject.jar
并定义对 ecplise 解析器项目的依赖项(右键单击验证项目 > 属性 > Java 构建路径 > 项目)我没有得到 ClassNotFoundException
.所以现在我的问题是,我应该如何导出 jar 以便找到每个类。谢谢!
最佳答案
Eclipse 在生成 .jar 时仅处理编译时依赖项
由于您生成的 .jar 几乎可以移动到任何地方,因此在执行期间必须再次存在依赖项。
您有两个选择:
-jar
执行你的 jar选项,同时保留所有同一文件夹中的依赖项。由于您的 list 使用“./”作为 classpath
,这意味着所有依赖项必须位于您执行 jar 的同一目录中。 注意类路径是相对于您正在执行的目录,而不是文件所在的目录。-jar
的情况下执行您的 jar选项,并指定-cp
选项指向依赖项,并指定主类。 java -cp "<path to your jar>;<path to dependency 1>;<path to dependency 3>[;...]" <your main class>
关于java - 使用自己创建的jar文件时出现ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31432601/
前言: 有时候,一个数据库有多个帐号,包括数据库管理员,开发人员,运维支撑人员等,可能有很多帐号都有比较大的权限,例如DDL操作权限(创建,修改,删除存储过程,创建,修改,删除表等),账户多了,管理
所以我用 Create React App 创建并设置了一个大型 React 应用程序。最近我们开始使用 Storybook 来处理和创建组件。它很棒。但是,当我们尝试运行或构建应用程序时,我们不断遇
遵循我正在创建的控件的代码片段。这个控件用在不同的地方,变量也不同。 我正在尝试编写指令来清理代码,但在 {{}} 附近插入值时出现解析错误。 刚接触 Angular ,无法确定我错过了什么。请帮忙。
我正在尝试创建一个 image/jpeg jax-rs 提供程序类,它为我的基于 post rest 的 Web 服务创建一个图像。我无法制定请求来测试以下内容,最简单的测试方法是什么? @POST
我一直在 Windows 10 的模拟器中练习 c。后来我改用dev C++ IDE。当我在 C 中使用 FILE 时。创建的文件的名称为 test.txt ,而我给出了其他名称。请帮助解决它。 下面
当我们创建自定义 View 时,我们将 View 文件的所有者设置为自定义类,并使用 initWithFrame 或 initWithCode 对其进行实例化。 当我们创建 customUITable
我正在尝试为函数 * Producer 创建一个线程,但用于创建线程的行显示错误。我为这句话加了星标,但我无法弄清楚它出了什么问题...... #include #include #include
今天在做项目时,遇到了需要创建JavaScript对象的情况。所以Bing了一篇老外写的关于3种创建JavaScript对象的文章,看后跟着打了一遍代码。感觉方法挺好的,在这里与大家分享一下。 &
我正在阅读将查询字符串传递给 Amazon 的 S3 以进行身份验证的文档,但似乎无法理解 StringToSign 的创建和使用方式。我正在寻找一个具体示例来说明 (1) 如何构造 String
前言:我对 C# 中任务的底层实现不太了解,只了解它们的用法。为我在下面屠宰的任何东西道歉: 对于“我怎样才能开始一项任务但不等待它?”这个问题,我找不到一个好的答案。在 C# 中。更具体地说,即使任
我有一个由一些复杂的表达式生成的 ILookup。假设这是按姓氏查找人。 (在我们简单的世界模型中,姓氏在家庭中是唯一的) ILookup families; 现在我有两个对如何构建感兴趣的查询。 首
我试图创建一个 MSI,其中包含 和 exe。在 WIX 中使用了捆绑选项。这样做时出错。有人可以帮我解决这个问题。下面是代码: 错误 error LGH
在 Yii 中,Create 和 Update 通常使用相同的形式。因此,如果我在创建期间有电子邮件、密码、...other_fields...等字段,但我不想在更新期间专门显示电子邮件和密码字段,但
上周我一直在努力创建一个给定一行和一列的 QModelIndex。 或者,我会满足于在已经存在的 QModelIndex 中更改 row() 的值。 任何帮助,将不胜感激。 编辑: QModelInd
出于某种原因,这不起作用: const char * str_reset_command = "\r\nReset"; const char * str_config_command = "\r\nC
现在,我有以下由 original.df %.% group_by(Category) %.% tally() %.% arrange(desc(n)) 创建的 data.frame。 DF 5),
在今天之前,我使用/etc/vim/vimrc来配置我的vim设置。今天,我想到了创建.vimrc文件。所以,我用 touch .vimrc cat /etc/vim/vimrc > .vimrc 所
我可以创建一个 MKAnnotation,还是只读的?我有坐标,但我发现使用 setCooperative 手动创建 MKAnnotation 并不容易。 想法? 最佳答案 MKAnnotation
在以下代码中,第一个日志语句按预期显示小数,但第二个日志语句记录 NULL。我做错了什么? NSDictionary *entry = [[NSDictionary alloc] initWithOb
我正在使用与此类似的代码动态添加到数组; $arrayF[$f+1][$y][$x+1] = $value+1; 但是我在错误报告中收到了这个: undefined offset :1 问题:尝试创
我是一名优秀的程序员,十分优秀!