【问题标题】:Eclipse rcp 4 app export missing class files in the jarEclipse rcp 4 app导出jar中缺少的类文件
【发布时间】:2021-04-16 00:31:27
【问题描述】:

我有一个包含许多插件项目的 RCP 4 应用程序。该应用程序在 IDE 中运行良好,但是当我在导出后运行它时,抛出了一些异常(ClassNotFoundException)。

我调查后发现这是因为某些类尚未导出到 jar 文件中。我不知道为什么? MANIFEST.MF、plugin.xml、build.properties 中的配置相同,但有些可以将类导出到 jar 文件,有些不能。

你能帮帮我吗?非常感谢!

更新:build.properties 文件

source.. = src/
output.. = bin/
bin.includes = META-INF/,\
               .,\
               item_editor.e4xmi,\
               plugin.xml

更新:MANIFEST.MF 文件

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Item_editor
Bundle-SymbolicName: xxx;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: xxx
Require-Bundle: org.eclipse.e4.ui.model.workbench,
 org.eclipse.osgi.services,
 org.eclipse.jface,
 org.eclipse.e4.core.services,
 xxx,
 xxx,
 org.eclipse.nebula.widgets.nattable.core,
 org.eclipse.e4.ui.workbench,
 org.eclipse.e4.core.contexts,
 org.eclipse.e4.core.di,
 org.eclipse.core.runtime,
 org.eclipse.e4.ui.di,
 xxx;bundle-version="1.0.0",
 org.eclipse.e4.core.di.extensions;bundle-version="0.15.0",
 xxx,
 xxx,
 xxx
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Import-Package: javax.inject;version="1.0.0"
Export-Package: xxx,
 xxx,
 xxx,
 xxx,
 xxx;x-internal:=true,
 xxx

【问题讨论】:

  • 这通常缺少 build.properties 或 MANIFEST.MF 中的条目。向我们展示有问题的插件的 build.properties 和 MANIFEST.MF。
  • @greg-449:我已经在问题中更新了它们。谢谢!
  • 在这个插件中找不到哪些类?它们在出口包裹列表中吗?它们是在主代码中还是在一些额外的 jar 中?
  • 它打印出ClassNotFoundException,因为插件找不到丢失的类。类代码在插件里面但是在插件的jar文件里面,没有类文件(全部)。
  • 如果您使用的是 Eclipse 'Export Product',请检查构建目录中是否有包含构建错误的 'logs.zip' 文件。

标签: jar export eclipse-rcp .class-file


【解决方案1】:

我这几天才遇到这个问题!这真的很烦人。下面是我们为项目所做的,开始将 .class 文件复制到包中:

我们的问题:在导出项目时,没有任何项目类(我们的类)被复制到导出的 jar 中。

  • 在 Eclipse 中,我们打开用于构建的.project 文件。它将在编辑器部分中打开它。

  • content 菜单中,我们单击自己的模块条目(我们将其命名为 XXX_BCC),它会在单独的编辑器中打开它。

  • 然后我们需要转到build 选项卡,如下图所示。

  • 将我们的bin(它是为我们的.class 文件指定的输出文件夹)添加到. 类路径!

  • Runtime Information下,更改前打开时只有src/,你可以按Add Folder..,在里面加上bin/。它会将bin 文件夹的内容添加到导出的JAR 文件中类路径的根目录中。

  • 我们再次进行了导出,我们的类文件在那里,我们没有再次收到该异常。

  • 这是更改后的build.properties 文件:

-下面是我们的JAR文件修改后再次导出后的内容。请注意 JAR 内容中的 _bccYYYY 等软件包。他们是我们之前错过的课程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多