对于创建一个jar文件-保留文件权限感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍建立jar文件,并为您提供关于git关于文件权限修改引起的冲突及忽略文件权限的办法、Gradle构建一个空的J
对于创建一个jar文件-保留文件权限感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍建立jar文件,并为您提供关于git关于文件权限修改引起的冲突及忽略文件权限的办法、Gradle构建一个空的Jar文件、Jar文件:为什么提取然后压缩一个jar文件创build一个不同大小的文件到原来的?、Java – 从Jar文件创建一个类的有用信息。
本文目录一览:- 创建一个jar文件-保留文件权限(建立jar文件)
- git关于文件权限修改引起的冲突及忽略文件权限的办法
- Gradle构建一个空的Jar文件
- Jar文件:为什么提取然后压缩一个jar文件创build一个不同大小的文件到原来的?
- Java – 从Jar文件创建一个类
创建一个jar文件-保留文件权限(建立jar文件)
我想知道如何创建一个jar文件,该文件保留其内容的文件权限。
我将源文件和可执行文件打包在一个jar文件中,该文件将在使用前提取。人们应该能够通过运行批处理/ shell脚本文件立即运行示例和演示。然后,他们应该能够修改源代码并重新编译所有内容。
我正在努力使使用它的人过上轻松的生活,其中包括Java和编程的新手,他们可能正在Linux / Unix上工作。
我可以访问运行Windows和Linux的计算机。我不经常使用Linux,所以也许我做错了什么。
在对文件设置权限之后,我在Linux上使用jar cf ....创建了一个jar文件,以便一切都能按需工作。然后,我创建了一个新的测试目录,并将jar文件的内容提取到其中。文件权限未保留…即-rw-rw-r–
git关于文件权限修改引起的冲突及忽略文件权限的办法
在发布项目到线上时,很多时候需要修改文件的权限,如果是使用git版本管理软件来发布的话,那么下次更新线上文件的时候就会提示文件冲突。明明文件没有修改,为什么会冲突呢?原来git把文件权限也算作文件差异的一部分。下面笔者自己做了个简单的例子来演示这种情况。
1、修改版本库的文件的权限,然后使用diff查看下改变。
$ chmod 777 pack.php $ git diff pack.php
git文件权限修改示例
可以看到git把文件权限也列入了版本管理。
2、在另外一个地方clone这个版本库,修改pack.php文件,然后提交。
3、在原版本库下面更新内容。
$ git pull
git文件权限修改引起的冲突
可以看到提示冲突。
解决办法:
git中可以加入忽略文件权限的配置,具体如下:
$ git config core.filemode false
这样就设置了忽略文件权限。查看下配置:
$ cat .git/config
git忽略文件权限的配置
这时候再更新代码就OK了。
总结:
笔者个人理解版本管理更注重文件内容,比较好奇为什么git将文件权限列入版本管理,估计是某些场景下有需要。笔者试了下文件所有者和所有组的修改不列入版本管理。另外在windows下git对文件权限是怎么处理的?
Gradle构建一个空的Jar文件
现在正在进行的项目是尝试构建为Java项目并从src / main / java获取src,因为这是Java项目的默认设置。因此,您需要id 'groovy'
中的id 'java'
而不是plugins
来使其进入src / main / groovy并在其中构建.java和.groovy文件。
Jar文件:为什么提取然后压缩一个jar文件创build一个不同大小的文件到原来的?
我试图编辑提取的Eclipse插件jar文件中的单个字节。 我注意到,我重新压缩文件作为一个jar后,由此产生的文件大于原来的(只有1%),并没有工作的插件。 Eclipse启动,但在select工作区后静静地closures。 回滚到原来的插件允许它成功启动。
然后,我尝试解压,然后压缩插件(不改变任何东西)和生成的jar文件仍然比原来的大,也没有工作。
$ jar -xf temp/in.jar
然后
$ jar -cf out.jar temp/* $ du in.jar out.jar 4216 in.jar 4236 out.jar
我想这可能是由于时间戳被改变了,但我不认为这会阻止日食接受它。
32/64位日蚀
Vim增量search
在Eclipse Neon.2中不能识别Android ADT
Tomcat中的本地库UnsatisfiedLinkError + Windows + eclipse
如何从两个(双引导)操作系统运行相同的eclipse安装?
所以我的问题:有没有办法解压一个jar,更改一个字节,并压缩它没有显着改变jar的?
我使用Ubuntu 10.04 – 64位:
Linux user 2.6.32-38-generic #83-Ubuntu SMP Wed Jan 4 11:12:07 UTC 2012 x86_64 GNU/Linux
当看着jar子的桌子时,似乎有不同的顺序:
$ jar tf in.jar | head -n 5 meta-inf/ meta-inf/MANIFEST.MF com/ com/android/ com/android/ide/ $ jar tf out.jar | head -n 5 meta-inf/ meta-inf/MANIFEST.MF about.html about.ini about.properties
有没有办法在jar子里以不同的方式排列它们?
Java 6 Update 25 VM崩溃:内存不足
如何将.java或.jar文件转换为Linux可执行文件(没有.jar扩展名,这意味着它不是.jar文件)
在Ubuntuterminal工作代码,在Windows Eclipse中不起作用
Linux与ARM Tegra 3搭配
从Win32应用程序和IBM RDZ / Eclipse一致访问大型机文件?
如果一个文件被修改,在再压缩之后获得不同的大小是正常的。 但是,如果没有任何修改,也许你有两个档案中的根目录不一样。
运行以下两个命令并在此处发布结果(仅限第一行):
jar tf in.jar jar tf out.jar
这些命令列出Jar文件中的所有文件及其路径。
您是否尝试使用以下命令只更新修改后的文件:
jar uf in.jar TheFileYouModified
TheFileYouModified必须与JAR文件中的路径相同。 例如,要替换您在/ tmp / injar /中修改的com / android / Example.class:
jar uf in.jar -C /tmp/injar com/android/Example.class
Java – 从Jar文件创建一个类
是否可以从jar文件加载一个类,然后从中创建一个对象?
注意:程序编译时,jar文件不存在,但稍后由用户添加,并在用户启动程序时加载.
我的代码喜欢这样:用户有一个jar文件,其中只有一个编译过的java类.然后,用户将此jar文件放在一个目录中,并启动我的程序,该程序查看目录并找到此jar文件.然后它加载这个jar文件并从中创建一个类,然后由它创建一个对象并将其添加到数组中.
除了从jar文件创建一个类(作为java.io文件加载)然后从该类创建和对象之外,我已经完成了所有工作.
有帮助吗?谢谢.
Class#forName
和Class#newInstance
方法.
This link提供了一个关于初始化一个知道其名称(从链接中提取)的类的好例子:
Class c = Class.forName("com.xyzws.AClass");
AClass a = (AClass)c.newInstance();
这些情况的一个很好的例子是使用JDBC(如链接所指出的那样),因为您初始化了要连接的db引擎驱动程序的对象.请记住,这个驱动程序来自一个导入的jar进入你的项目,它可能是MysqL,Oracle或MSsql Server的jar,你只需提供驱动程序类名,让JDBC API和jar处理sql工作.
Class.forName("org.gjt.mm.MysqL.Driver");
Connection con = DriverManager.getConnection(url,"myLogin","myPassword");
另外,对于动态加载jar的这个特定问题,有问题和答案:
> How should I load Jars dynamically at runtime?
关于创建一个jar文件-保留文件权限和建立jar文件的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于git关于文件权限修改引起的冲突及忽略文件权限的办法、Gradle构建一个空的Jar文件、Jar文件:为什么提取然后压缩一个jar文件创build一个不同大小的文件到原来的?、Java – 从Jar文件创建一个类的相关信息,请在本站寻找。
本文标签: