jar打包遇到的一些问题

如果用Eclipse打包将会是一件非常方便的事,不过开发过程中jar包不允许用Eclipse来生成,因为需要把这步操作放在Makefile,于是只能用命令了,自己写了个脚本去实现这些操作,记录下遇到的问题。

1.
因为长期使用Eclipse来导出jar包以至于都不知道使用什么命令以及步骤去实现,打包其实就需要两个命令,一个是javac(因为没有Eclipse帮忙把java文件生成class文件了)另一个就是jar了。

1.1 Eclipse生成jar包的步骤也顺便写一下:1)File -> Export -> Java(JAR file) ->
Next -> 仅仅需要你需要打包的java文件,其他的不要勾选,默认是全选的。Select the export
destination指定下路径和目录就好了

2. java的一些命令有---直接截图

不过好像我都不怎么用到,一般都是直接javac
javaFile,要是想归类就加个-d,因为当前目录的所有文件都需要变为为class文件于是乎我就直接javac *。

2.1 javac cannot find symbol的问题,这样的问题一般是依赖问题,所有需要javac file1 file2 file3
...如果编译的过程中出现找不到Android的类比如SurfaceView,Content,Activity等这些那是因为没有吧android.jar包含到你的环境变量CLASSPATH中去,你可以javac的时候使用-cp或者-classpath来指定这个路径,如果你不仅仅包含了Android的这些class,比如用到egl的类,我还包含了这个包“javax.microedition.khronos.egl.EGL10”所有还需要把javax.el_2.2.0.v201108011116.jar包含进CLASSPATH中去,当我找到javax.el_2.2.0.v201108011116.jar包的时候发现当前目录还有很多这样的包,为了防止我以后需要用到还需要慢慢包含,就直接指定那个目录然后应该是这样的以jdk1.7为例“Java\jdk1.7.0_51\lib\missioncontrol\plugins\*.jar”。

2.2
使用或覆盖了已过时的api的问题,这个问题是因为你的java文件里面包含了已经“deprecated”的API,把这些替换或者使用@SuppressWarnings("deprecation")这样的形式

2.3 javac:无效的标记 xxx.class,关于这个警告的原因我也不知道,不过我把把用Eclipse打包的jar包jar -xf
xx.jar解压出来发现警告的那个class文件同样存在,大小也是一样的,我测试这些生成的class文件也没有问题,所有觉得这个警告是可以忽略的,什么时候有时间想起来了才来解决这个问题。

3. jar的一些命令有---截图

关于这命令感觉需要注意的是解压的时候也要加-f,不需要指定名字,会直接解压到当前目录。打包的时候因为是直接把整个目录打包进去的所有需要-C,需要注意的是因为直接把src目录下的这目录直接打包了,要不jni编程的时候找不到这个路径的写法和截图的示例2一样的。

时间: 2024-08-08 23:20:15

jar打包遇到的一些问题的相关文章

java jar打包命令使用

用法:jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名 ... 选项: -c 创建新的存档 -t 列出存档内容的列表 -x 展开存档中的命名的(或所有的]文件 -u 更新已存在的存档 -v 生成详细输出到标准输出上 -f 指定存档文件名 -m 包含来自标明文件的标明信息 -0 只存储方式:未用zip压缩格式 -M 不产生所有项的清单(manifest]文件 -i 为指定的jar文件产生索引信息 -C 改变到指定的目录,并且包含下列文件:

java基础篇-jar打包

以helloworld程序为例: 一:正常流程: 1.首先编写一个hello.java的程序: public class Hello { public static void main(String[] args) { System.out.println("hello world!"); } } 保存到C:/temp 目录下. 2.编译:hello.java cd C:/temp javac hello.java 在C:/temp目录下则会多出一个hello.class文件.(此时如

android库工程jar打包和混淆

公司有个项目需要以库的形式提供给第三方使用,但是java代码又不想别人知道,还有资源文件也需要一起打包,很常见的需求,下面就是解决此事的过程. 1.直接将库工程提供给第三方,android库工程引用方式 被老板pass,代码客户都可以看到,不行. 2.将库工程TestLib的src导出成jar,把res目录直接发给第三方 失败.导出的jar依然是引用库工程的R文件(com.test.lib.R),但是资源提供给第三方后,生成的R为com.test.R,因此运行时找不到com.test.lib.R

windows10计划任务启动bat执行jar打包的jar文件

今天公司要用bat文件执行jar打包的java文件,运行没项目的程序,并且用任务计划开机自启,今天记录下坑 系统:win10 一.编写.bat执行用jar打包的jar文件 @echo offjava -jar E:\java\mina_server_jar\mina_server.jar jar文件目录 二.配置系统的计划任务 打开win10左下角的菜单栏,在搜索框内输入“任务计划” 打开任务计划后,在右边“操作”中找到“创建任务” 名称和描述随意输入,选择用户登录时运行,并且配置系统选择win

JAVA jar命令(一)-jar打包class文件

jar包本质上是将所有class文件.资源文件压缩打成一个包(也可以选择不压缩),可选择在jar包中生成META-INF/MANIFEST.MF文件,MANIFEST.MF是清单文件,里面可以记录主类.classpath等信息,供虚拟机使用.接下来的一段时间里,我们将以以下路径学习jar命令和清单文件的相关知识 jar打包class文件    带包class文件jar打包    清单文件的使用 在这篇文章里我们将使用简单的java程序来熟悉jar命令的使用,因为是出于熟练使用jar的目的,下面的

maven的两种可运行jar打包方式。1、内置依赖,2、外部依赖。

maven打可运行jar包的两种方式 maven常用的普通打包方式分为pom,jar,war等,至于这些打包类型就不介绍啦. 如果不进行特殊配置,那么打包出来的jar包是不可运行的.只能当作普通依赖包使用. 下面就介绍两种maven打可运行jar包的方式: 方式一:内置打包法 <plugins> <!-- 内置打包法 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <!-- 

jar打包命令详解

:如何把 java 程序编译成 .exe 文件.通常回答只有两种,一种是说,制作一个可执行的 JAR 文件包,就可以像.chm 文档一样双击运行了:而另一种回答,则是使用 JET 来进行编译.但是 JET 是要用钱买的,而且,据说 JET 也不是能把所有的 Java 程序都编译成执行文件,性能也要打些折扣.所以,使用制作可执行 JAR 文件包的方法就是最佳选择了,何况它还能保持 Java 的跨平台特性.先来看看什么是 JAR 文件包: 1. JAR 文件包 JAR 文件就是 Java Archi

[Android Pro] Java进阶学习:jar打包详解

jar文件听说过吗,没有?或者陌生!好,没关系,这就是我们的第一站:打包发布. 为什么会有这个玩意呢,首先,这是jar的全称:JavaTM Archive (JAR) file,是的,就是java存档文件.这有点类似zip文件,想一想它是干什么的用的呢,压缩!?没错就是要压缩,将我们原先零散的东西放到一下,重新 组织,所有这些目的只有一个:方便!好了,不用管他是怎么压缩的,我们的重点是哪些是我们要压缩的(输入),还有压缩成了什么(输出),进而将它发布(部 署). 那我们的输入(要压缩的东西)主要

Gradle进行项目jar打包

Ant 和 Maven构建工具都是用xml来描述任务结构的,总体而言打包项目等任务都可以,但毕竟xml的灵活性稍微差些, 新的企业构建工具Gradle就类似于linux上的shell脚本,采用Groovy动态语言编写脚本. 版本:2.2的Gradle // date 20141220 apply plugin : 'java' version='0.1' archivesBaseName="myfirstpj" //不写的话 就是项目名称+版本号 repositories { mave