mysql怎么生成可执行文件_查询mysql数据库的java程序在myeclipse上运行正常,但生成可执行文件后查询不出结果。问题出在哪儿呢?...
展开全部
你所说的可执行文件,就是jar包吗?e69da5e6ba903231313335323631343130323136353331333337613164
自己生成的jar文件,执行需要指明所依赖的其他lib包,建议查下,如何配置。应该是你的程序的运行时没有指定依赖包。大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个jar包的程序入口。
具体的方法是修改jar包内目录META-INF下的MANIFEST.MF文件。
比如有个叫做test.jar的jar包,里面有一个拥有main函数的main class:test.someClassName
我们就只要在MANIFEST.MF里面添加如下一句话:
Main-Class: test.someClassName
然后我们可以在控制台里输入java -jar test.jar即可以运行这个jar。
但是我们这个项目需要引用其他第三方的jar包,在eclipse里面以项目jar包的形式引用了这个叫做some.jar的包,当时放在项目的lib子目录下,最后项目打包时把这个some.jar也打进来了,但是用java -jar执行这个test.jar的时候报找不到Class异常,原因就是jar引用不到放在自己内部的jar包。
那怎么办?
运行时将其加入classpath的方式行不行?就是在运行jar的同时加入classpath参数:
java -classpath some.jar -jar test.jar
这种方式是不行的,因为使用classpath指定的jar是由AppClassloader来加载,java 命令 加了-jar 参数以后,AppClassloader就只关注test.jar范围内的class了,classpath参数失效。
那该怎么引用其他的jar包呢?
方法一、使用Bootstrap Classloader来加载这些类
我们可以在运行时使用如下参数:
-Xbootclasspath:完全取代系统Java classpath.最好不用。
-Xbootclasspath/a: 在系统class加载后加载。一般用这个。
-Xbootclasspath/p: 在系统class加载前加载,注意使用,和系统类冲突就不好了.
win32 java -Xbootclasspath/a: some.jar;some2.jar; -jar test.jar
unix java -Xbootclasspath/a: some.jar:some2.jar: -jar test.jar
win32系统每个jar用分号隔开,unix系统下用冒号隔开
方法二、使用Extension Classloader来加载
你可以把需要加载的jar都扔到%JRE_HOME%/lib/ext下面,这个目录下的jar包会在Bootstrap Classloader工作完后由Extension Classloader来加载。非常方便,非常省心。:)
方法三、还是用AppClassloader来加载,不过不需要classpath参数了
我们在MANIFEST.MF中添加如下代码:
Class-Path: lib/some.jar
lib是和test.jar同目录的一个子目录,test.jar要引用的some.jar包就在这里面。
然后测试运行,一切正常!
如果有多个jar包需要引用的情况:
Class-Path: lib/some.jar lib/some2.jar
每个单独的jar用空格隔开就可以了。注意使用相对路径。
另:如果META-INF 下包含INDEX.LIST文件的话,可能会使Class-Path配置失效。INDEX.LIST是Jar打包工具打包时生成的索引文件,删除对运行不产生影响。
方法四、自定义Classloader来加载
这种方法是终极解决方案,基本上那些知名java应用都是那么干的,如tomcat、jboss等等。
这种方式有点复杂,需要专门开贴讨论。关于ClassLoader的原理和自定义ClassLoader可以参考这篇http://cuixiaodong214.blog.163.com/blog/static/951639820099135859761
总结:
以上四种方法都可以用,特别是程序运行在非常单纯的环境中时。但是,如果是运行在多任务,多应用的环境中时,最好每个应用都能相互独立,第一种和第二种方案都有可能对其他应用产生影响,因此最好就是选择第三种和第四种。
mysql怎么生成可执行文件_查询mysql数据库的java程序在myeclipse上运行正常,但生成可执行文件后查询不出结果。问题出在哪儿呢?...相关推荐
- java打印星号_【其它】编写Java程序在屏幕上打印用星号组成的等腰三角形
参考答案如下 编写[多选题]文学象征的特征有() 程序成[简答题]Translate the above passage into Chinese to get more precisely what ...
- java只能在运行和编译吗_如何在另一个Java程序中编译和运行Java程序?
斯蒂芬大帝 我修改了代码以包括一些检查:public class Laj { private static void printLines(String name, InputStream ins) ...
- java程序编译成exe文件_将java程序编译成独立运行的exe文件
将java程序编译成独立运行的exe文件 众所周知java的程序可以"一次编译,到处运行",这个特性不错,但是实现这个特性的前提是当前的平台 必须有相应的jvm,而且如果当前平台的 ...
- 银联银行卡卡号java_编写Java程序,使用单例模式,创建可以生成银联借记卡号的工具类...
编写Java程序,使用单例模式,创建可以生成银联借记卡号的工具类 编写Java程序,使用单例模式,创建可以生成银联借记卡号的工具类,银联借记卡号是一个 19 位的数字,卡号以"62" ...
- mysql导入dat文件_.dat导入数据库
SQL Server中bcp命令的用法以及数据批量导入导出 0.参考文献: SQL Server BCP使用小结 bcp Utility 某社区600万用户数据导入MYSQL.MSSQL.Oracle ...
- 深入浅出mysql唐汉名_深入浅出MySQL++数据库开发、优化与管理维护+第2版+唐汉明 -- 存储引擎 - 数据类型 - 字符集和校验规则 -...
create schema deepInMySql; use deepInMySql; -- 查看当前默认存储引擎 show variables like '%table_type%'; -- 查看当 ...
- mysql设置自动递增_《MySQL数据库》约束条件和自增长序列
一.约束(constraint) 约束就是在表上强制执行的一种校验规则,当执行DML操作时,数据必须符合这些规则,如果不符合,将无法执行. 约束的全称:约束条件,也称之为完整性约束条件.可以保证表中数 ...
- mysql not exists无效_分析MySQL中哪些情况下数据库索引会失效
要想分析MySQL查询语句中的相关信息,如是全表查询还是部分查询,就要用到explain. 一.explain 用法:explain +查询语句. id:查询语句的序列号,上面图片中只有一个selec ...
- mysql命令4类_【Mysql】mysql数据库的一些常用命令
一.启动与退出 1.进入MySQL: 输入命令:mysql -u root -p 直接输入安装时的密码即可. 此时的提示符是:mysql> 2.退出MySQL:quit或exit 3.数据库清屏 ...
最新文章
- 大数据、智慧城市成生态贵州新名片
- 汇总|目标检测中的数据增强、backbone、head、neck、损失函数
- python 出现 AttributeError: matplotlib‘ object has no attribute ‘to_rgba‘
- Spark Java API:Transformation
- java XML解析防止外部实体注入
- python远程调用摄像头_Python设置Socket代理及实现远程摄像头控制的例子
- 跳坑成功,手摸手带你使用PHP连接Oracle数据库
- RTP/RTCP/RTSP/SIP/SDP简介
- python查询注册表子项是否存在并操作
- 孪生网络图像相似度_图像相似度比对
- matlab人脸识别论文,基于matlab的人脸识别系统设计本科毕业论文(设计).doc
- 天使投资人给创业者的一封信
- 基于GITHUB ACTION的定时任务,真香!
- VLC的windows版本下载
- 怎样将图片体积缩小?如何一键完成图片压缩?
- centos php-fpm 位置,centos 如何安装 php-fpm
- Vue的各种杂乱知识点整理(持续更新中...)
- 爬虫实战3:模拟登陆知乎并爬取任意帖子数据
- 手动搭建webase(1)——节点前置服务
- 关于科研技术的一些常用网址
热门文章
- 和朱晔一起复习Java并发(二):队列
- BZOJ 4238 电压 解题报告
- Oracle解锁scott账号
- Apache重定向方法实现图片防盗链
- HFUT 1357.梯田AGAIN(安徽省2016“京胜杯”程序设计大赛 D)
- SQL数据库相关 FMDB框架的使用
- hdu 3917 Road constructions 最大权闭合子图
- Linux中VMware虚拟机硬盘空间扩大方法
- 苏州大学文正学院计算机专业,苏州大学文正学院有哪些专业及什么专业好
- 计算机求是科学班2020年招生,浙江大学2020年三位一体综合评价招生分析:取消笔试,名额增加...