首页 文章 精选 留言 我的

精选列表

搜索[Eclipse],共2962篇文章
优秀的个人博客,低调大师

使用Eclipse把java文件打包成jar 含有第三方jar库的jar包

方式一: 1.自己要在工程下新建一个MANIFEST.MF的文件,如下图所示 这个文件的内容就是: MAIN-CLASS: 记得是有空格的然后要写你MAIN方法主类的绝对名字,最后回车空出一行不写东西,就是第四行空着,不然会提示找不到主类的,并且会出各种问题的。。。。 工程的lib目录下的内容: 2.选择要导出的工程点击右键选择EXPORT。。 3.选择步骤如下图 *Exportgeneratedclassfilesandresources表示只导出生成的.class文件和其他资源文件 *Exportalloutputfoldersforcheckedprojects表示导出选中项目的所有文件夹 *Exportjavasourcefileandresouces表示导出的jar包中将包含你的源代码*.java,如果你不想泄漏源代码,那么就不要选这项了 *Exportrefactoringsforcheckedprojects把一些重构的信息文件也包含进去 最后点击FINISH完成 4.打包包含第三方jar的关键来了 主要是lib文件夹和运行的jar包放到同一个路径下 下图是放在window运行的事例: 如果放到linux上也是一样: 运行jar包命令java -jar XXX.jar如果有参数java -jar XXX.jar 参数1…… 方式二: 直接导出runnable jar,如下图所示: 然后选择导出runnable jar 关于library handling部分的解释如下: (1)Extract required libraries into generated JAR。把所有的import JAR都拆开来,包含在JAR的各个目录中,ex. net/org/xxx.class (2)Package required libraries into generated JAR。把所有的import JAR都包在JAR的根目录下 (3)Copy required libraries into a sub-folder next to the generated JAR。把所有import JAR放在JAR外面独立的一个文件夹 最后点击Finish,完工

优秀的个人博客,低调大师

解决Android项目在eclipse中无法打包apk文件[bin目录下没生成apk文件]的问题

原因在于:Window-->Preferences-->Android-->Build中“Skippackaginganddexinguntilexportorlaunck”选项默认是勾上的,因此去掉该选项就OK了 解决: 1,首先把以上的那个选项去掉 2,点击Project中的Clean选项,重新编译项目 好了,现在查看bin目录应该就可以看到xx.apk文件了 本文转自 pangfc 51CTO博客,原文链接:http://blog.51cto.com/983836259/1394624,如需转载请自行联系原作者

优秀的个人博客,低调大师

Hadoop概念学习系列之搭建(windows)Eclipse/MyEclipse远程操作(Linux上)hadoop2.2.0/hadoo...

问题1:在DFS Lcation 上不能多文件进行操作: 在Hadoop上的每个节点上修改该文件 conf/mapred-site.xml 增加: <property> <name>dfs.permissions</name> <value>false</value> </property> 关闭权限验证 问题2 log4j:WARN No appenders could be foundfor logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory). log4j:WARN Please initialize the log4jsystem properly. log4j:WARN Seehttp://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 在src文件夹下创建以log4j.properties命名的文件 文件内容如下 log4j.rootLogger=WARN, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d%p [%c] - %m%n 问题3 Java.io.IOException: Could not locateexecutable null/bin/winutils.exe in the Hadoop binaries. 缺少winutils.exe下载一个添加进去就行 下载地址 http://download.csdn.net/detail/u010106732/9630094 问题4 Exceptionin thread "main" java.lang.UnsatisfiedLinkError:org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArray(II[BI[BIILjava/lang/String;JZ)V 这是由于hadoop.dll 版本问题,2.2之前的和之后的需要的不一样 需要选择正确的版本并且在 Hadoop/bin和 C:\windows\system32 上将其替换 问题5 Exception in thread "main"java.lang.UnsatisfiedLinkError:org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z atorg.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Native Method) at org.apache.hadoop.io.nativeio.NativeIO$Windows.access(NativeIO.java:557) 目前未找到解决方法,只能修改源代码 源代码下载 http://pan.baidu.com/s/1jGJzVSy 将源代码放入 工程的src目录下并创建同样的包名,然后修改源代码 源代码 未修改前 publicstaticbooleanaccess(String path, AccessRight desiredAccess) throwsIOException { returnaccess0(path,desiredAccess.accessRight()); } 源代码 修改后 publicstaticbooleanaccess(String path, AccessRight desiredAccess) throwsIOException { return ture; //returnaccess0(path,desiredAccess.accessRight()); } 修改后编译成功,但是看不到软件运行时候的信息反馈。 本文转自大数据躺过的坑博客园博客,原文链接:http://www.cnblogs.com/zlslch/p/6053970.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

04.Eclipse下Ndk开发(以文件拆分合并为例模拟一下开发过程,参考文件加密的过程)

(创建于2017/12/6) 1.工具类PatchUtils package com.ren.ndk_file_patch; public class PatchUtils { static{ System.loadLibrary("ndk_file_patch"); } public native static void diff(String path,String path_pattern,int count); public native static void patch(String path_pattern,String merge_path,int count); } 2.生成的头文件 com_ren_ndk_file_patch_PatchUtils.h /* DO NOT EDIT THIS FILE - it is machine generated */ #include <jni.h> /* Header for class com_ren_ndk_file_patch_PatchUtils */ #ifndef _Included_com_ren_ndk_file_patch_PatchUtils #define _Included_com_ren_ndk_file_patch_PatchUtils #ifdef __cplusplus extern "C" { #endif /* * Class: com_ren_ndk_file_patch_PatchUtils * Method: diff * Signature: (Ljava/lang/String;Ljava/lang/String;I)V */ JNIEXPORT void JNICALL Java_com_ren_ndk_1file_1patch_PatchUtils_diff (JNIEnv *, jclass, jstring, jstring, jint); /* * Class: com_ren_ndk_file_patch_PatchUtils * Method: patch * Signature: (Ljava/lang/String;Ljava/lang/String;I)V */ JNIEXPORT void JNICALL Java_com_ren_ndk_1file_1patch_PatchUtils_patch (JNIEnv *, jclass, jstring, jstring, jint); #ifdef __cplusplus } #endif #endif 3.编写的c文件 ndk_file_patch.c #include "com_ren_ndk_file_patch_PatchUtils.h" #include <jni.h> #include <stdio.h> #include <stdlib.h> #include<android/log.h> #define LOGI(FORMAT,...) __android_log_print(ANDROID_LOG_INFO,"renzhenming",FORMAT,__VA_ARGS__); #define LOGE(FORMAT,...) __android_log_print(ANDROID_LOG_ERROR),"renzhenming",FORMAT,__VA_ARGS__); long get_file_size(const char *path){ FILE *fl = fopen(path,"rb"); //把与fp有关的文件位置指针放到一个指定位置。 //文件指针定位到文件末尾,偏移0个字节 fseek(fl,0,SEEK_END); //函数用来获取文件读写指针的当前位置,对于二进制文件,则返回从文件开头到结尾的字节数。 return ftell(fl); } JNIEXPORT void JNICALL Java_com_ren_ndk_1file_1patch_PatchUtils_diff (JNIEnv *env, jclass jclz, jstring path_jstr, jstring path_pattern_jstr, jint file_num){ //转换文件路径 const char *path = (*env)->GetStringUTFChars(env,path_jstr,NULL); const char *path_pattern = (*env)->GetStringUTFChars(env,path_pattern_jstr,NULL); //得到分割之后的所有文件路径 //申请一段连续的内存空间(一个数组)保存所有分割的文件地址 char **patches = malloc(sizeof(char*)*file_num); int i = 0; for(;i<file_num;i++){ patches[i]=malloc(sizeof(char)*100); //元素赋值 //需要分割的文件:C://jason/liuyan.png //子文件:C://jason/liuyan_%d.png(path_pattern的格式) sprintf(patches[i],path_pattern,(i+1)); LOGI("patch path:%s",patches[i]); } //不断读取path文件,循环写入file_num个文件中 // 整除 // 文件大小:90,分成9个文件,每个文件10 // 不整除 // 文件大小:110,分成9个文件, // 前(9-1)个文件为(110/(9-1))=13 // 最后一个文件(110%(9-1))=6 //获取文件大小 int file_size = get_file_size(path); //打开这个文件 FILE *fpr = fopen(path,"rb"); //整除 if(file_size % file_num == 0){ //单个文件大小 int part = file_size/file_num; int i =0; //逐一写入设置好的子文件路径中 for(;i<file_num;i++){ //从子文件路径打开一个FILE FILE *fpw = fopen(patches[i],"wb"); int j = 0; for(;j<part;j++){ //边读边写 //fgetc函数功能:从流中读取字符,即从fp所指定的文件中取得下一个字符。这里需要注意,在每取完一个字符时fp会自动向下移动一个字节。这样编成时,程序员就不用再对fp //控制了。这种功能在许多读写函数中都有体现。 fputc(fgetc(fpr),fpw); } fclose(fpw); } }else{ //无法整除 int part = file_size/(file_num-1); int i = 0; for(;i<file_num-1;i++){ FILE *fpw = fopen(patches[i],"wb"); int j=0; for(;j<part;j++){ fputc(fgetc(fpr),fpw); } fclose(fpw); } //最后一个子文件 FILE *fpw = fopen(patches[file_num-1],"wb"); i = 0; for(;i<file_size%(file_num-1);i++){ fputc(fgetc(fpr),fpw); } fclose(fpw); } //释放 i = 0; for(;i<file_num;i++){ free(patches[i]); } free(patches); (*env)->ReleaseStringUTFChars(env,path_jstr,path); (*env)->ReleaseStringUTFChars(env,path_pattern_jstr,path_pattern); } /* * Class: com_ren_ndk_file_patch_PatchUtils * Method: patch * Signature: (Ljava/lang/String;Ljava/lang/String;I)V */ JNIEXPORT void JNICALL Java_com_ren_ndk_1file_1patch_PatchUtils_patch (JNIEnv *env, jclass jclz, jstring path_pattern_jstr, jstring merge_path_jstr, jint file_num){ //字符串转换 const char *merge_path = (*env)->GetStringUTFChars(env,merge_path_jstr,NULL); const char *path_pattern = (*env)->GetStringUTFChars(env,path_pattern_jstr,NULL); //得到分割后的子文件路径列表 char **patches = malloc(sizeof(char*)*file_num); int i = 0; for(;i<file_num;i++){ patches[i]=malloc(sizeof(char)*100); //元素赋值 //需要分割的文件:C://jason/liuyan.png //子文件:C://jason/liuyan_%d.png sprintf(patches[i],path_pattern,i+1); LOGI("patch path:%s",patches[i]); } //打开要merge_path为一个FILE FILE *fpw = fopen(merge_path,"wb"); //把所有分割的文件读取一遍,写入到这个总的文件中 i = 0; for(;i<file_num;i++){ //得到每个子文件的大小 int file_size = get_file_size(patches[i]); //打开每个子文件路径为一个FILE FILE *fpr = fopen(patches[i],"rb"); int j =0; for(;j<file_size;j++){ fputc(fgetc(fpr),fpw); } fclose(fpr); } fclose(fpw); //释放内存 i = 0; for(;i<file_num;i++){ free(patches[i]); } free(patches); (*env)->ReleaseStringUTFChars(env,merge_path_jstr,merge_path); (*env)->ReleaseStringUTFChars(env,path_pattern_jstr,path_pattern); } 4.Android.mk文件 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := ndk_file_patch LOCAL_SRC_FILES := ndk_file_patch.c LOCAL_LDLIBS := -llog //使用了log,需要引入 include $(BUILD_SHARED_LIBRARY) 5.开始拆分合并 public class MainActivity extends Activity { private String SD_CARD_PATH; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); SD_CARD_PATH = Environment.getExternalStorageDirectory().getAbsolutePath(); } public void diff(View view){ String path = SD_CARD_PATH +File.separatorChar+ "2.mp4"; String path_pattern = SD_CARD_PATH +File.separatorChar+ "2_%d.mp4"; PatchUtils.diff(path, path_pattern, 2); System.out.println("拆分完成"); } public void patch(View view){ String merge_path = SD_CARD_PATH +File.separatorChar+ "2_new.mp4"; String path_pattern = SD_CARD_PATH +File.separatorChar+ "2_%d.mp4"; PatchUtils.patch(path_pattern, merge_path, 2); System.out.println("合并完成"); } } 6.注意添加权限,6.0动态申请 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。