-
如何定义Eclipse中build path上JAR包的访问规则?0
如下图所示,我们在导入某一些JAR包时,构建路径中该JAR包下面会自然附带一些访问规则。比如:禁止访问某些package。
那么我希望的效果是, 我自己对外提供的JAR包,在被别人使用的时候也缺省带上这样的访问规则,即:不做特殊改动,缺省情况下是无法访问JAR中的内部私有package的。
这个很类似于OSGi中,一个模块可以设定自己Export-Package,只有本模块导出的package,其他模块在运行时才可见。而内部的package,即使在JAR包中,其他模块也是无法访问的。 我现在的需求就是如何利用Eclipse JAR包的访问规则,达到在编译期屏蔽私有package的目的。
知道的,指点下,多谢!!
问题补充:再补充一下,我的意思是说, 作为JAR包的提供者,我希望对外自然屏蔽一些JAR包内私有的package。
以免对使用者产生错误的引用。
如果以后JAR包升级、改造,是不需要兼容这些私有的package内部的类的。
所以,请不要说 使用Java缺省的 包访问来修饰Class等方案,这不符合我的要求。
问题补充:也不要说,让使用者自己修改Eclipse中的JAR包的访问规则。 我的目的不是绝对不能访问,而是告诉使用者,缺省情况下,这些package里面的类是不对外的,也就是说,以后升级的话,是完全不考虑兼容性的。
或者即使编译通过,如果放在OSGi环境下,运行时也会报找不到类的错误。
问题补充:或者说,意图是 希望把OSGi运行时对package的限制,在编译期,通过开发工具就体现出来。
使得编译期和运行期 对package的可见性有一个一致的效果。
从而避免,编译期错误引用了运行期根本无法访问的类,导致编译成功,但运行失败。
希望这种错误在编译期就能避免。2014年5月17日 10:52
3个答案 按时间排序 按投票排序
-
采纳的答案
楼主,你好,通过eclipse导出jar包时,可以指定相应是Seal的package,实现与你类似的需求。部署是在第二次点击Next时出现的画面。整个配置最终会保存在MANIFEST.MF中。
内容如下:Manifest-Version: 1.0 Name: com/test/mytest/ Sealed: true
作用:引用
包密封
密封 JAR 文件中的一个包意味着在这个包中定义的所有类都必须在同一个 JAR 文件中找到。这使包的作者可以增强打包类之间的版本一致性。密封还提供了防止代码篡改的手段。
要密封包,需要在 JAR 的 manifest 文件中为包添加一个 Name 头,然后加上值为“true”的 Sealed 头。与可执行的 JAR 一样,可以在创建 JAR 时,通过指定一个具有适当头元素的 manifest 文件密封一个 JAR,如下所示:
Name: com/samplePackage/
Sealed: true
Name 头标识出包的相对路径名。它以一个“/”结束以与文件名区别。在 Name 头后面第一个空行之前的所有头都作用于在 Name 头中指定的文件或者包。在上述例子中,因为 Sealed 头出现在 Name 头后并且中间没有空行,所以 Sealed 头将被解释为只应用到包 com/samplePackage 上。
如果试图从密封包所在的 JAR 文件以外的其他地方装载密封包中的一个类,那么 JVM 将抛出一个 SecurityException 。
参考自:
http://zydky.iteye.com/blog/5591242014年5月19日 13:24
-
要求貌似有点高
访问权限在代码级别似乎就只有4种访问修饰符
如果是在非代码级别上做处理(如果可能的话)即使能让eclipse符合预期,那换一个IDE怎么办,感觉不靠谱啊2014年5月17日 11:48
相关推荐
三个Eclipse插件可以去掉多余的java项目中jar包,有操作图示。
2.【Java Build Path】-【Configure Build Path】-【Libraries】,在下面找到如:Guava-r09.jar包,展开它,选择【Source attachment】,单击右边的【Edit…】按钮。 3.在打开的窗口中,可选择文件(jar\zip),...
在这个场景中,"eclipse单元测试所需jar包"是指为了在Eclipse中进行单元测试所需的外部库或JAR文件。 Eclipse本身包含了基本的JUnit框架支持,但有时我们需要更强大的测试工具或扩展,比如Mockito、PowerMock等。...
### 在Eclipse中配置JAR包的相对路径 在Java开发过程中,经常需要引入外部库(JAR包)来扩展项目功能或简化开发流程。Eclipse作为一款流行的Java集成开发环境(IDE),提供了多种方式来管理和配置这些外部库。本文...
在"标题"中提到的"Eclipse用jstl需要的jar包",主要指的是两个关键的jar文件:`jstl.jar`和`standard.jar`。`jstl.jar`包含了JSTL的核心类和接口,而`standard.jar`则提供了JSTL实现所需的支持库,如EL(Expression ...
为了在Eclipse中成功连接并操作HBase数据库,你需要正确的依赖库,也就是jar包。HBase 1.2.6版本与Hadoop 2.7.1版本是兼容的,所以你需要确保你的开发环境配置了这些特定版本的jar包。 首先,我们需要了解HBase和...
"eclipse可导入的jar包"这个资源集合就是针对这样的需求整理的,它包含了几个在Eclipse中编写Java程序时可能需要用到的库。 首先,我们来看一下“jxl”这个标签。jxl是一个开源的Java库,专门用于读写Microsoft ...
- 通过"Build Path" -> "Configure Build Path" -> "Libraries" -> "Add JARs" 或 "Add External JARs",选择相应的Jar文件添加到项目的类路径中。 - 如果是Maven项目,可以在pom.xml文件中添加对应的依赖,Eclipse...
本文将详细介绍一种不依赖于Eclipse内置buildpath功能的方法来配置第三方JAR包。 #### 二、Eclipse项目结构简介 在深入讨论如何配置第三方JAR包之前,我们需要先了解Eclipse项目的几个关键概念: 1. **项目路径**...
本话题将围绕"Eclipse插件打包Jar文件fatjar"展开,讲解如何在Eclipse 4.4及以上版本中创建一个包含所有依赖的“fat jar”文件。 "Fat jar",又称为"uber jar",是一种将项目的所有依赖库合并到一个单一的JAR文件中...
总结来说,Eclipse导入JAR包是Java开发过程中常见的一项操作,通过以上步骤,我们可以将外部库整合到项目中,从而利用这些库提供的功能。正确地导入和管理JAR包对于提高开发效率和保证项目的正常运行至关重要。
在Eclipse中,可以通过右键点击项目 -> "Build Path" -> "Configure Build Path" -> "Libraries" 来查看和管理这些库。如果缺少某个jar包,可以点击 "Add Jars" 或 "Add External Jars" 添加。 2. **使用版本兼容的...
"eclipse中反编译jar包源码"这个主题涉及到如何在Eclipse集成开发环境中使用特定的插件和工具来查看.jar文件的源代码。 首先,我们来看一下标签"jad",它是Java反编译器JAD的简称。JAD是一款流行的Java字节码到源...
本话题将详细介绍如何在Eclipse中使用JSON以及与之相关的jar包。 1. **Eclipse中的JSON支持** 在Eclipse中处理JSON数据,开发者通常会使用到一些库来方便地解析和生成JSON对象。这些库包括Jackson、Gson、org.json...
在Eclipse中,右键点击项目 -> `Properties` -> `Java Build Path` -> `Libraries`,然后选择`Add Class Folder`或`Add External JARs`将依赖的库添加进来。接着,转到`Order and Export`选项卡,确保你的主类所在的...
这可以通过右键点击项目中的jar文件,选择"Build Path" -> "Configure Build Path" -> "Libraries" -> "Add External JARs"来实现。接着,选择你需要的jar包,点击"OK"添加到项目中。 接下来,我们将使用新安装的反...
下载后,将其复制到Eclipse项目的`lib`目录下,然后右键点击项目,选择“Build Path” -> “Configure Build Path” -> “Libraries” -> “Add Jars”,选择添加的jar包并确认。这样,你的Eclipse项目就能识别并...
解决 Eclipse 中“项目无法构建直到build path”问题 Eclipse 是一个功能强大且流行的集成开发环境(IDE),广泛应用于 Java Web 开发中。但是在使用 Eclipse 进行项目开发时,经常会遇到“项目无法构建直到build ...
本篇将详细解释如何在Eclipse中打开项目所在位置的jar包,以及这背后的原理和相关知识点。 首先,当我们提到“jar包”,全称为Java Archive,是Java平台的一种归档格式,用于集合多个类文件和其他资源文件,形成一...
本教程将详细介绍如何使用“jd-eclipse”插件在Eclipse中查看jar包的源码。 首先,让我们了解一下jd-eclipse插件。jd-eclipse是Java反编译器JD-GUI的一个Eclipse版本,它能够将已编译的Java字节码转换回源代码形式...