Eclipse开发,编译,打包常见问题总结------持续更新

在使用Eclipse开发,编译,打包常见问题如下:

1、  保证本地开发的客户端与服务端使用的jdk版本一致

2、  保证本地开发的客户端与服务端使用的依赖jar包版本一致(比如本地thrift 客户端使用的libthrift版本和服务端使用的libthrift使用的版本)。不要版本不兼容

3、  保证本地依赖的jar包版本之间不冲突(可以通过pom.xml的dependency hierarchy窗口查看依赖冲突;然后使用maven的打包工具maven-jar-plugin解决版本冲突)(引用jar包实际上是使用jar包内的class文件,如果多个jar包里都有com.test.study这个类,但是每个类的实现不同。就会导致混乱不知道引用哪一个。找不到指定类。)

4、  用Eclipse打可执行jar包时:launch configuration里经常会找不到我们要打包的工程。那是因为这个工程我们从来没有运行过。必须要编译运行通过一次,我们才可以在launch configuration里找到我们要打包的工程。如果工程中我们还依赖了第三方jar包,下面三个对应选型分别对第三方jar包做了处理。1)将依赖jar包的class文件提取出来和工程源码一起编译 ;2)将依赖jar包和工程一起打包(此时生成的manifest清单中,classpath指定了依赖jar的查找路径就在当前可执行jar包的所在目录下 ) 3)将依赖jar包 单独打到一个子文件夹下比如mylib。这个文件夹和我们的可执行jar包在一个目录(此时生成的manifest清单中,classpath指定了依赖jar的查找路径就在当前可执行jar包的所在目录下的子文件夹里eg:mylib )。

       用maven 打jar包时:可以分别选择打包插件比如maven-jar-plugin(manifest中配置mainclass和classpath),maven-assembly-plugin或者maven-shade-plugin(将依赖包和工程打到一个包里)

!!!一定要弄清楚程序编译和运行时的classpath

 

 

5、 在编译和运行时,如果依赖某个资源文件resources。如果不是指定全路径来打开这个文件,则需要保证这个文件在编译和运行的(classpath)路径上。普通Java项目默认的classpath是src文件夹下的内容;如果想要某个文件夹下(eg:test_resources)的资源被自动程序自动搜索到,则需要将test_resources添加到Java build path中(右键properties>java build path>sources);maven 项目,默认的classpath是src/main/java 和 src/main/resourse目录。如果想把资源拷出来,则用maven-resource-plugins插件编译

 

转载于:https://www.cnblogs.com/happyliuyi/p/10824063.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/362831.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ECMA-335 (CLI) 标准 读书笔记——总结CLI类型系统(上)

看到类型系统的概述时,就忍不住按图索骥,想搞清楚CLI如何定义的整个类型系统。于是翻遍了整个标准,将类型系统中最核心的、与运行平台密切相关的类型定义与说明整理了出来,以供理清思路。 标准的第四部指出,CLI的核心是…

流口水可执行模型

可执行模型是对引擎处理的Drools最低级别模型的重新设计。 在当前的系列(最多6.x)中,可执行模型在过去的8年中有机地增长了,从未真正成为最终用户的目标。 建议那些希望以编程方式编写规则的人通过代码生成和目标drl来完成&#x…

centos7安装openjdk8

首先,打开openjdk安装官网 http://openjdk.java.net/install/ 输入安装命令: su -c "yum install java-1.8.0-openjdk" 装完之后会有提示版本跟安装的路径;在/usr/lib/jvm下可以查看到对应的名字,ls-l 配置环境变量&…

CSB文件上传漏洞 -->Day4(图片挂马)

22二号,冬至啦,深圳这边只有5(尊嘟好冷啊),写这篇文章的时候都已经是凌晨一点了,相信大部分的人都在温暖的被窝里面了吧!!(可怜的我,还得写writeup&#xff0…

微信小程序禁止刷新之后苹果端还可以下拉的问题

一、问题描述 最近在做一个小程序项目,需要禁止下拉刷新,于是在page.json里面添加了这段话 "enablePullDownRefresh":false 全局关闭下拉刷新,这段话确实禁止了下拉刷新,无论是安卓手机端还是苹果端,但是在…

Win32 Application和Win32 Console Application的区别

Win32 Application和Win32 Console Application都是工作在32位Windows环境的程序。其中Win32 Application就是普通的常见的窗口应用程序,当然有的界面做得比较个性化,比如圆形的、不规则形状的……它们都是所谓的GUI(Graphics User Interface图形用户接口…

调试OpenJDK

knowyourmeme.com/photos/531557 THX为mihn 有时调试Java代码还不够,我们需要逐步了解Java的本机部分。 我花了一些时间来实现JDK的正确状态,所以简短的描述可能对开始旅行的人很有用。 我将使用全新的OpenJDK 9! 首先,您必须通过…

算法题解:旋转数组的最小数字

题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 解题思路 将旋转数组对半分可以得到一个包含最小元素的新旋转数组,以及一个非递减排序的数组。新…

函数的自执行,变量提升和函数提升

其实之前虽然刚开始学习JavaScript的时候经常看到function add(){}、var addfunction(){}、function(){}之类的这种写法,但是具体是什么叫什么却没有去考虑过这个问题…… function add(){}这种写法叫做函数声明 var addfunction(){}这种写法叫做函数表达式 fun…

Python之机器学习-sklearn生成随机数据

sklearn-生成随机数据 import numpy as np import pandas as pd import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties from sklearn import datasets %matplotlib inline font FontProperties(fname/Library/Fonts/Heiti.ttc) 多标签分类数据…

css:学习CSS了解单位em和px的区别

在国内网站中,包括三大门户,以及“引领”中国网站设计潮流的蓝色理想,ChinaUI等都是使用了px作为字体单位。只有百度好歹做了个可调的表率。而在大洋彼岸,几乎所有的主流站点都使用em作为字体单位,也就是可调的。没错&…

外汇游乐场

介绍 F X Playground是基于JavaFX的原型制作工具或实时编辑器,它消除了编译Java代码的步骤。 这个概念并不是什么新鲜事物,例如在网络世界中,有许多HTML5 游乐场提供在线编辑器,使开发人员可以快速原型化或尝试各种JavaScript库。…

轻轻松松看懂Spring AOP源码

轻轻松松看懂Spring AOP源码 https://baijiahao.baidu.com/s?id1596466083334197175&wfrspider&forpc 如果对spring的核心容器和JDK动态代理、CGLIB有所了解,接下来再看spring AOP源码会比较容易。文中所有代码片段截图对应的spring版本是5.0。 本文内容曾…

2015年,Web 进入移动时代

最近 Morgan Stanley 发布了一份87页的报告,对 Internet 的未来趋势进行预测,报告显示,移动 Web 目前发展迅猛,包括 Kindle, iPhone, 智能手机,平板电脑,GPS 设备,游戏机在内的无线设备呈爆炸式…

vue2.0移除或更改的一些东西

一、vue2.0移除了$index和$key 虽然说现在很多文章说他们的代码是vue2.0版本的,但是有一些仔细一看,发现并不全是2.0版本,有些语法还是1.0的版本,比如这个$index,$key,这两个压根就不是2.0的写法,2.0早就把…

VGG16等keras预训练权重文件的下载及本地存放

VGG16等keras预训练权重文件的下载: https://github.com/fchollet/deep-learning-models/releases/ .h5文件本地存放目录: Linux下是放在“~/.keras/models/”中 Win下则放在Python的“settings/.keras/models/”中 在anaconda on win中默认是&#xff1…

Java Keystore教程

目录 1.简介 2. SSL及其工作方式 3.私钥 4.公开证书 5.根证书 6.证书颁发机构 7.证书链 8.使用Java keytool的密钥库 9.密钥库命令 10.在Apache Tomcat上使用密钥库和自签名证书配置SSL 1.简介 我们谁没有去ebay,亚马逊买东西或他的个人银行帐户来检查。 您是否认为…

spring AOP源码分析(一)

spring AOP源码分析(一) 对于springAOP的源码分析,我打算分三部分来讲解:1.配置文件的解析,解析为BeanDefination和其他信息然后注册到BeanFactory中;2.为目标对象配置增强行为以及代理对象的生成&#xff…

异或前缀和,组合数学——cf1054D

/* 每个异或前缀和sum[i]只有两个值 区间异或和不为0,即两个不相等的前缀和 sum[i]的两个前缀和只要标记一个就可以了,为了去重只用map保存最小的那个来计数 最后统计相同的前缀和时,为了使相同的最小,每个map的值要平分 */ #inc…

elementUI之switch应用的坑

前言: 因为项目中用到了饿了么出品的element-ui这一套ui框架,所以很多地方都踩在了坑里,前面碰到了一些,今天着重聊一下switch这个组件。 首先switch接受Boolean类型的数据,莫非是true和false。 对switch进行赋值&a…