GVKun编程网logo

创建一个jar文件-保留文件权限(建立jar文件)

10

对于创建一个jar文件-保留文件权限感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍建立jar文件,并为您提供关于git关于文件权限修改引起的冲突及忽略文件权限的办法、Gradle构建一个空的J

对于创建一个jar文件-保留文件权限感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍建立jar文件,并为您提供关于git关于文件权限修改引起的冲突及忽略文件权限的办法、Gradle构建一个空的Jar文件、Jar文件:为什么提取然后压缩一个jar文件创build一个不同大小的文件到原来的?、Java – 从Jar文件创建一个类的有用信息。

本文目录一览:

创建一个jar文件-保留文件权限(建立jar文件)

创建一个jar文件-保留文件权限(建立jar文件)

我想知道如何创建一个jar文件,该文件保留其内容的文件权限。

我将源文件和可执行文件打包在一个jar文件中,该文件将在使用前提取。人们应该能够通过运行批处理/ shell脚本文件立即运行示例和演示。然后,他们应该能够修改源代码并重新编译所有内容。

我正在努力使使用它的人过上轻松的生活,其中包括Java和编程的新手,他们可能正在Linux / Unix上工作。

我可以访问运行Windows和Linux的计算机。我不经常使用Linux,所以也许我做错了什么。

在对文件设置权限之后,我在Linux上使用jar cf ....创建了一个jar文件,以便一切都能按需工作。然后,我创建了一个新的测试目录,并将jar文件的内容提取到其中。文件权限未保留…即-rw-rw-r–

git关于文件权限修改引起的冲突及忽略文件权限的办法

git关于文件权限修改引起的冲突及忽略文件权限的办法

在发布项目到线上时,很多时候需要修改文件的权限,如果是使用git版本管理软件来发布的话,那么下次更新线上文件的时候就会提示文件冲突。明明文件没有修改,为什么会冲突呢?原来git把文件权限也算作文件差异的一部分。下面笔者自己做了个简单的例子来演示这种情况。

1、修改版本库的文件的权限,然后使用diff查看下改变。

$ chmod 777 pack.php
$ git diff pack.php

git文件权限修改示例

git文件权限修改示例

可以看到git把文件权限也列入了版本管理。

2、在另外一个地方clone这个版本库,修改pack.php文件,然后提交。

3、在原版本库下面更新内容。

$ git pull

git文件权限修改引起的冲突

git文件权限修改引起的冲突

可以看到提示冲突。

解决办法:

git中可以加入忽略文件权限的配置,具体如下:

$ git config core.filemode false

这样就设置了忽略文件权限。查看下配置:

$ cat .git/config

git忽略文件权限的配置

git忽略文件权限的配置

这时候再更新代码就OK了。

总结:

笔者个人理解版本管理更注重文件内容,比较好奇为什么git将文件权限列入版本管理,估计是某些场景下有需要。笔者试了下文件所有者和所有组的修改不列入版本管理。另外在windows下git对文件权限是怎么处理的?

 

Gradle构建一个空的Jar文件

Gradle构建一个空的Jar文件

现在正在进行的项目是尝试构建为Java项目并从src / main / java获取src,因为这是Java项目的默认设置。因此,您需要id 'groovy'中的id 'java'而不是plugins来使其进入src / main / groovy并在其中构建.java和.groovy文件。

Jar文件:为什么提取然后压缩一个jar文件创build一个不同大小的文件到原来的?

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文件创建一个类

Java – 从Jar文件创建一个类

是否可以从jar文件加载一个类,然后从中创建一个对象?

注意:程序编译时,jar文件不存在,但稍后由用户添加,并在用户启动程序时加载.

我的代码喜欢这样:用户有一个jar文件,其中只有一个编译过的java类.然后,用户将此jar文件放在一个目录中,并启动我的程序,该程序查看目录并找到此jar文件.然后它加载这个jar文件并从中创建一个类,然后由它创建一个对象并将其添加到数组中.

除了从jar文件创建一个类(作为java.io文件加载)然后从该类创建和对象之外,我已经完成了所有工作.

有帮助吗?谢谢.

最佳答案
您正在寻找Class#forNameClass#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文件创建一个类的相关信息,请在本站寻找。

本文标签: