javaopenmap的简单介绍

博主:adminadmin 2023-01-20 09:27:13 258

本篇文章给大家谈谈javaopenmap,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java中怎么创建一个Request对象

java怎么创建Reques步骤如下:

HttpServletRequest request = ServletActionContext.getRequest();  

ServletContext servletContext = ServletActionContext.getServletContext();  

request.setAttribute("req", "请求范围属性");  

request.getSession().setAttribute("ses", "会话范围属性");

servletContext.setAttribute("app", "应用范围属性");

HttpServletResponse response = ServletActionContext.getResponse();

ava语言是整个体系的基础,按照不同的用途,在以下方面应用广泛:

企业级应用开发

这里是JAVA的天地,大到全国联网的系统,小到中小企业的应用解决方案,JAVA都占有极为重要的地位

网站开发

当然就是JSP+Servlet+JavaBean。

移动领域

典型的应用是手机游戏(国内主要是这方面),这里是J2ME的天地,其实应用范围是很广的,只是国内开发不够 。

JAVA里面有没有组件可以直接连接打印机打印数据

JasperReports与iReport 简介

简介 JasperReports是一款开源的报表打印组件,是开源代码组织sf.net中的一个java报表打印工程,可以以PDF, HTML或XML等多种形式产生报表,支持分页打印,并且可以制作各种类型的图表。Jasperreport是按照一个预定义的xml文档来组织报表的数据,这些数据来源多样,包括关系数据库(通过配置JDBC连接)、java容器对象(collection和arrays)。要完成报表的填充,必须先完成用于报表的xml文件,其过程是先产生报表设计对象,再序列化该对象,存储在磁盘或者网络,用于产生特定应用的表格数据。事实上,表单的设计过程就是用定义于xml文件中的java表达式来表现报表的设计。编辑过程中会有各种保证数据一致性的验证,最终会产生相关数据文档或填充数据的准备。 iReport也是开源组织sf.net中的一款免费软件,其主要作用是以可视化的方式升级生成JasperReport所使用的报表格式文件,因为JasperReport本身没有提供很好的可视化报表设计工具,iReport正好弥补了这个缺陷,因此我们常常将这两个工具结合起来使用。 JasperReports可以在这个地址得到: iReport 可以在这个地址得到: iReport的使用 iReport的安装 安装iReport首先需要在本机安装JDK,并对环境进行配置,最新版的JDK可以从 处下载并安装,然后配置windows环境变量,在path后面加入“;java的安装目录”,新建环境变量 JAVA_HOME :“java的安装目录” CLASSPATH:“java的安装目录\bin” 如果已经安装过JDK,则可以跳过这些步骤。然后从iReport的站点下载最新的版本的iReport,解压iReport在任意目录,解压后的文件里面有一个iReport.bat,通过双击,过大约30秒钟如果可以弹出iReport的主窗体即表明你的系统已经可以运行iReport了,如果不能弹出主窗体,一般是因为JDK没有正确被安装。在iReport中配置数据库使用iReport的第一步是配置数据库连接,选择菜单“资料来源/连接资料来源”,打开如下的对话框, 点击“New”,打开如下对话框,可以创建数据连接, 我们以创建JDBC数据源为例,在“Type of connection / datasource”列表中,选择“Database.JDBC.connection”,在“Name”中,为创建的新的连接取一个需要的名字,在JDBC Driver中,选择一个驱动,我们以Oracle为例,选择“oracle.jdbc.driver.OracleDriver”,在JDBC URL中输入JDBC连接,例如:“jdbc:oracle:thin:@localhost:1521:TANGO”,同时请在Username和Password中输入连接数据库的用户和密码。注意一点OracleJDBC的包必须在环境变量的CLASS_PATH中配置。全都创建好后,点击“Test”可以进行对数据库连接的测试。建立连接后,就可以对数据表进行查询,选择菜单“资料来源/报表查询”,打开如下对话框: 在“Report SQL query”页中,可以输入任意的sql数据来得到数据,当输完完整的sql语句后,iReport自动将所有字段列表列出,这些字段就是可以在报表制作过程中可以使用的变量。另外需要注意的是:当我们创建了多个数据源的时候,需要设定一个当前的数据源,选择菜单:“设定/设置当前数据源”,打开如下对话框: 可以在所有建立的数据源中设置当前使用的数据源。从java容器获得数据通过JDBC获得数据非常方便,但我们通常不会在设计期就确定完整的sql语句,通常我们在运行期都需要构造一些动态的sql,当然,我们可以通过编程的方式来构造sql并传递给iReport,但是复杂的sql语句不便于维护,也容易出错。JasperReports允许从java容器中获得数据,首先告诉iReport,java容器类的路径,选择菜单:“工具/classpath”,如图: 设置完路径后,再次选择菜单“资料来源/报表查询”,到“JavaBean Datasource”页,在Class Name中输入容器类的全路径,如下图: 点击“Read javabeans attributes”,容器中的字段就全部被读取了出来。至此为止,我们已经可以开始制作报表了。开始使用iReport iReport的开发界面和我们熟悉的delphi著名插件quickreport比较相似,整个页面由若干个band组成,每个band实现不同的显示方式。界面如下: 新建报表单击工具栏的第一个按钮“New Report”,或者通过菜单“报表/新增”进入创建报表菜单,如下图: 在报表名称栏内给创建的报表取个名字,然后是定义纸张的大小,iReport提供了多种预设尺寸,当然也可以选择自定义的页面尺寸,并提供两种定位方式,也即横向和竖向。在对话框的下半页,还可以设置页边距,列等等。当都设置完成,点击“OK”,完成新建动作。报表结构创建了一个新的报表后,我们来看看报表的结构。一个报表的结构大致是几个部分:title、pageHeader、columnHeader、detial、columnFooter、pageFooter、summary、groupHeader、groupfooter。 Title:每个报表一般会有一个名字,比如×××销售报表,title就是搁置这个名称的最好地方了,当然你也可以根据需要搁置在合适的地方。 pageHeader:报表的一些公共要素,比如页码、创建时间、创建人等信息放置在这里是比较好的选择。在每页头都会打印一遍 columnHeader:这里是放置列的名称,记住不是列数据。 Detial:放置需要循环的数据,比如销售记录数据。 columnFooter:放置列级别的统计计算值或是列的说明。 pageFooter:放置页级别的统计值或是页的说明。 Summary:可能需要对几页(你的报表可能有几个页组成)的统计值。比如50个销售记录共占用了3页,那么放置这些统计记录的统计值最好的地方就是summary。 groupHeader:每个表的内容可能需要根据某个属性进行划分显示内容和计算内容,比如希望以月份为单位每组分开显示销售记录,那么就可以定义一个组(组的定义参考后文),groupHeader就是放置组说明或是组标志最好的地方。 Groupfooter:放置组的统计或是说明。报表的动态对象变量、参数、字段在使用iReport的过程中会碰到很多与变量(Variables)、参数(Parameters)、字段(Fields)这些有关的内容,所以我们还是要先介绍这些对象的使用和意义:字段(Fields):来自数据库,或是java容器对象。这些内容是报表显示的主体内容,语法为$F{ filedsName }。参数(Parameters):这是你的应用需要提供给报表的入口,比如你希望在报表被解释的时候提供Where语句的条件值,那么就可以使用参数(Parameters)。语法为$P{ parameterName },可以给报表提供多个参数,通过一个HashMap传入。使用参数前,参数必须在iReport中进行配置,如,我们需要在打印时得到打印操作人,我们创建一个参数打印人:printOperator。选择菜单“预览——报表参数”,打开如下对话框: 在参数页面,点击“新增”按钮,继续打开如下新增参数对话框: 在“Parameter name”内,填入参数名称:“printOperator”,在“Paramenter class type”选择框中,选择参数的类型,我们这里选择“java.lang.String”,在“Default value expression”中填入当传入的值缺失时的缺省值,因为iReport是纯java语言开发,因此支持任何java语句。在“Paramenter description”中可以对该参数进行一些描述。点击“OK”完成参数的创建。下面给出简单的程序调用实例: HashMap map = new HashMap(); Map.put(“printOperator”,”陈宁”); JasperFillManager.fillReport(jasperReport,map,ds); 变量(Variables):这是报表中一些逻辑运算的表现,比如统计值(求和,最大值,最小值等等)。语法为$V{ variablesName },例如我们要对定单金额进行求和,假设定单金额的数据库字段为amt,我们现在创建变量名为totalAmt的对定单金额进行汇总的变量,点击菜单“预览/报表变量”,打开如下对话框: 我们看到iReport已经为我们预先定义了五个有用的变量,供我们使用,具体含义如下: • $V{REPORT_COUNT}: 报表处理的记录笔数 • $V{PAGE_NUMBER}: 打印时的页码 • $V{PAGE_COUNT}: 本页处理的记录笔数 • $V{COLUMN_NUMBER}: 报表的直栏数目 • $V{COLUMN_COUNT}: 本栏的处理笔数 • $V{群组名_COUNT}: 群组Band的处理笔数,建立群组时会自动产生的变量其中最后一个变量是根据分组情况自动生成的。我们现在新增一个自己定义的变量,点击“新增”,打开新增变量对话框: 在“Variable name”中,输入变量名:“totalAmt”,在“variable class type”中选择变量的类型“java.math.BigDecimal”,在“Calculation type”中选择计算的类型,这里是求和“Sum”,在“Variable expression”中输入变量的表达式,我们这里是取数据库中的字段amt,所以写成“$F{amt}”,请注意。当我们正确的配置了数据来源后,当我们输入的表达式正确,那么显示的颜色是绿色的的,当不能正确写对表达式的时候,是如图所示的蓝色。然后我们在“initial value expression”中输入初始化的值,这里同样输入java语句:“new java.math.BigDecimal(0)”。点击“OK”,完成参数的设置。在报表页面放置元素 iReport的工具栏提供了丰富的元素,从简单的内容到包括图形,分组报表都支持。我们主要介绍两类,一类为静态文本,一类为动态文本。这两个工具按钮如下: 点击“T”的工具按钮,打开添加“静态文本”的对话框。 他的用法比较简单,有一些计算机使用经验的人都能看懂,就不在这里介绍了。这里只说一点:要显示的内容是在Static Text页面中输入,在Print when expression中,可以接受返回类型为Boolean的java表达式,当返回Boolean.TRUE,才会打印该静态文本,当返回为Boolean.FALSE则不打印,在本文后面会介绍利用这个特性打印黑白交替的行显示效果。我们再看看动态文本,点击“F”,打开如下对话框: 动态与静态文本大致类似,动态文本在“Text Field”中接受表达式,在“Textfield expression”中,输入动态表达式“$F{s_data_1}”,如图,绿色代表输入正确。在Pattern中,还可以输入数据显示的格式。制作报表有了上面的基本知识,我们就可以开始制作报表了。我在制作报表中,考虑了以下的思路。首先,取数据通过java容器,而不是直接连接数据库,这是因为我们制作的报表通常都比较复杂,很难直接通过一个简单的sql语句来实现,就算我们可以写一个复杂的select语句来实现一个报表的查询,但是对于以后的维护和排错也是相当困难的,因此不建议这样的做法。从另一个角度考虑,报表的很多查询条件是根据用户的输入来动态的创建的,我们在后台对数据进行整理和加工都会使程序的调试和实现变得简单。我创建了数据容器类:ReportBaseObject,非常简单,部分代码如下: public class ReportBaseObject { private String s_data_1; private String s_data_2; private String s_data_3; …… private String s_data_20; private BigDecimal b_data_1; private BigDecimal b_data_2; private BigDecimal b_data_3; …… private BigDecimal b_data_20; private Date d_data_1; private Date d_data_2; private Date d_data_3; …… private Date d_data_10; private Integer i_data_1; …… private Integer i_data_10; public BigDecimal getB_data_1() { return b_data_1; } public void setB_data_1(BigDecimal b_data_1) { this.b_data_1 = b_data_1; } …… public Date getD_data_1() { return d_data_1; } public void setD_data_1(Date d_data_1) { this.d_data_1 = d_data_1; } …… public Integer getI_data_1() { return i_data_1; } public void setI_data_1(Integer i_data_1) { this.i_data_1 = i_data_1; } …… public String getS_data_1() { return s_data_1; } public void setS_data_1(String s_data_1) { this.s_data_1 = s_data_1; } …… } 这是一个通用的数据容器,容器中定义了20个字符类型的字段,20个数字类型的字段,10个日期和10个整型,这个容器对于任何报表都适合,这样做是基于以下考虑。我把报表制作分为两个部分,第一部分是用iReport制作报表界面,第二部分在后台根据用户传入条件取得报表需要的数据。而第一部分可以由项目人员在现场制作后后期进行修改,而第二部分由开发人员完成,因此要求这两部分的工作可以分离,通过提供一个通用对象,我们可以实现这一目的。工程人员在现场和客户洽谈需求,并在没有数据的情况下,开始制作报表界面,他们所要做的就是用一张表格列出他们需要的数据的含义:如: baseObject 对应字段 说明 报表编号:01_001 S_data_1 单号 S_data_2 单据类型 D_data_1 要货日期 D_data_2 批准时间 B_data_1 应付金额 B_data_2 已付金额 在与用户确认了界面后,工程人员将表格传递给开发人员,开发人员就根据表格所标注的字段意义给容器填写数据。以下是我画的报表截图: 显示不同的背景如下图所示,我们希望打印出灰白相间的行效果,可以利用上文提到的“print when expresssion”属性来实现,具体做法有两种: 在同一列上放相同字段的TextField,一个不设背景(预设为白色),另一个设背景(淡黄色) 白色背景的Print when expression输入new Boolean((($V{PAGE_COUNT}.intValue()) % 2)==0) 灰色背景的Print when expression输入new Boolean((($V{PAGE_COUNT}.intValue()) % 2)==1) 另一个方法是先在Detail Band上拉一个矩形,设其背景为淡黄色,设其Print when expression为new Boolean((($V{PAGE_COUNT}.intValue()) % 2)==1),意即奇数列时才要印出这个淡黄底色的矩形。再设其前景为白色,使矩形边界的黑框消失。在矩形上放需要的Text Field,并将其Transparent打勾,意即此Text field是透明的。

调用IE内置打印组件完成web打印方案及例程

重点:

<OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0 VIEWASTEXT>

</OBJECT>

<input type=button value=打印 onclick="document.all.WebBrowser.ExecWB(6,1)" class="NOPRINT">

<input type=button value=直接打印 onclick="document.all.WebBrowser.ExecWB(6,6)" class="NOPRINT">

<input type=button value=页面设置 onclick="document.all.WebBrowser.ExecWB(8,1)" class="NOPRINT">

<input type=button value=打印预览 onclick="document.all.WebBrowser.ExecWB(7,1)" class="NOPRINT">

注意:

1、CSS对打印的控制:

<!--media=print 这个属性可以在打印时有效-->

<style media=print>

.Noprint{display:none;}

.PageNext{page-break-after: always;}

</style>

Noprint样式可以使页面上的打印按钮等不出现在打印页面上,这一点非常重要,因为它可以用最少的代码完成最需要的功能

PageNext样式可以设置分页,在需要分页的地方<div class="PageNext"></div>就OK了,呵呵

2、表格线粗细的设置,更是通过样式表:

<style>

.tdp

{

border-bottom: 1 solid #000000;

border-left: 1 solid #000000;

border-right: 0 solid #ffffff;

border-top: 0 solid #ffffff;

}

.tabp

{

border-color: #000000;

border-collapse:collapse;

}

</style>

或者:

<style>

.TdCs1 {

border:solid windowtext 1.0pt;

}

.TdCs2 {

border:solid windowtext 1.0pt; border-left:none;

}

.TdCs3 {

border-top:none;

border-left:solid windowtext 1.0pt;

border-bottom:solid windowtext 1.0pt;

border-right:solid windowtext 1.0pt;

}

.TdCs4 {

border-top:none;

border-left:none;

border-bottom:solid windowtext 1.0pt;

border-right:solid windowtext 1.0pt;

}

.underline {

border-top-style: none;

border-right-style: none;

border-bottom-style: solid;

border-left-style: none;

border-bottom-color: #000000;

}

</style>

很多种打印的方式了,你走走脑子上网艘艘,没有找不到的

给你个打印excel例子,跟上面的不同

下载一个叫jcom的lib,鬼子做的

把包里的jcom.jar放到classpath,把jcom.dll放到java_home/bin下面

public class JCOM {

public boolean print(String fname) {

ReleaseManager rm = new ReleaseManager();

try {

ExcelApplication excel = new ExcelApplication(rm);

ExcelWorkbooks xlBooks = excel.Workbooks();

ExcelWorkbook xlBook = xlBooks.Open(fname);

ExcelWorksheet xlSheet = excel.ActiveSheet();

xlSheet.PrintOut();

xlBook.Close(false, null, false);

excel.Quit();

} catch (Exception e) {

e.printStackTrace();

return false;

} finally {

rm.release();

}

return true;

}

public static void main(String[] args) {

JCOM test = new JCOM();

try {

test.print("c:\\test.xls");

} catch (Exception e) {

e.printStackTrace();

}

}

}

Caused by: java.lang.NoClassDefFoundError: Failed resolution of:Lcom/tencent/ysdk/framework/hotfix

NoClassDefFoundError 问题原因1:缺少jar包

首先最常见的原因是classpath的配置问题。例子程序:

本例子程序尝试创建一个新的CallerClassA实例,然后执行他的一个方法,此方法引用了类ReferencingClassA,本例子演示了classpath问题导致的NoClassDefFoundError ,本例子还打印了当前的classloader chain的情况,以便进一步的分析。这个打印信息对你以后分析此类问题也很有帮助的:

程序

Java代码 收藏代码

public class NoClassDefFoundErrorSimulator {

public static void main(String[] args) {

System.out

.println("java.lang.NoClassDefFoundError Simulator");

// Print current Classloader context

System.out.println("\nCurrent ClassLoader chain: "

+ ClassloaderUtil.getCurrentClassloaderDetail());

// 1. Create a new instance of CallerClassA

CallerClassA caller = new CallerClassA();

// 2. Execute method of the caller

caller.doSomething();

System.out.println("done!");

}

}

Java代码 收藏代码

public class CallerClassA {

private final static String CLAZZ = CallerClassA.class.getName();

static {

System.out.println("Classloading of " + CLAZZ + " in progress..."

+ ClassloaderUtil.getCurrentClassloaderDetail());

}

public CallerClassA() {

System.out.println("Creating a new instance of "

+ CallerClassA.class.getName() + "...");

}

public void doSomething() {

// Create a new instance of ReferencingClassA

ReferencingClassA referencingClass = new ReferencingClassA();

}

}

Java代码 收藏代码

public class ReferencingClassA {

private final static String CLAZZ = ReferencingClassA.class.getName();

static {

System.out.println("Classloading of " + CLAZZ + " in progress..."

+ ClassloaderUtil.getCurrentClassloaderDetail());

}

public ReferencingClassA() {

System.out.println("Creating a new instance of "

+ ReferencingClassA.class.getName() + "...");

Maps.newHashMap();

}

public void doSomething() {

// nothing to do...

}

}

打印classloader工具类:

Java代码 收藏代码

public class ClassloaderUtil {

public static String getCurrentClassloaderDetail() {

StringBuffer classLoaderDetail = new StringBuffer();

StackClassLoader classLoaderStack = new StackClassLoader();

ClassLoader currentClassLoader = Thread.currentThread()

.getContextClassLoader();

classLoaderDetail

.append("\n-----------------------------------------------------------------\n");

// Build a Stack of the current ClassLoader chain

while (currentClassLoader != null) {

classLoaderStack.push(currentClassLoader);

currentClassLoader = currentClassLoader.getParent();

}

// Print ClassLoader parent chain

while (classLoaderStack.size() 0) {

ClassLoader classLoader = classLoaderStack.pop();

// Print current

classLoaderDetail.append(classLoader);

if (classLoaderStack.size() 0) {

classLoaderDetail.append("\n--- delegation ---\n");

} else {

classLoaderDetail.append(" **Current ClassLoader**");

}

}

classLoaderDetail

.append("\n-----------------------------------------------------------------\n");

return classLoaderDetail.toString();

}

}

正常运行:

Java代码 收藏代码

java -classpath .;../guava-12.0.jar NoClassDefFoundError.NoClassDefFoundErrorSimulator

java.lang.NoClassDefFoundError Simulator

Current ClassLoader chain:

-----------------------------------------------------------------

sun.misc.Launcher$ExtClassLoader@addbf1

--- delegation ---

sun.misc.Launcher$AppClassLoader@19821f **Current ClassLoader**

-----------------------------------------------------------------

Classloading of NoClassDefFoundError.CallerClassA in progress...

-----------------------------------------------------------------

sun.misc.Launcher$ExtClassLoader@addbf1

--- delegation ---

sun.misc.Launcher$AppClassLoader@19821f **Current ClassLoader**

-----------------------------------------------------------------

Creating a new instance of NoClassDefFoundError.CallerClassA...

Classloading of NoClassDefFoundError.ReferencingClassA in progress...

-----------------------------------------------------------------

sun.misc.Launcher$ExtClassLoader@addbf1

--- delegation ---

sun.misc.Launcher$AppClassLoader@19821f **Current ClassLoader**

-----------------------------------------------------------------

Creating a new instance of NoClassDefFoundError.ReferencingClassA...

done!

异常重现:

Java代码 收藏代码

java -classpath . NoClassDefFoundError.NoCl

java.lang.NoClassDefFoundError Simulator

Current ClassLoader chain:

-----------------------------------------------------------------

sun.misc.Launcher$ExtClassLoader@addbf1

--- delegation ---

sun.misc.Launcher$AppClassLoader@19821f **Current ClassLoader**

-----------------------------------------------------------------

Classloading of NoClassDefFoundError.CallerClassA in progress...

-----------------------------------------------------------------

sun.misc.Launcher$ExtClassLoader@addbf1

--- delegation ---

sun.misc.Launcher$AppClassLoader@19821f **Current ClassLoader**

-----------------------------------------------------------------

Creating a new instance of NoClassDefFoundError.CallerClassA...

Classloading of NoClassDefFoundError.ReferencingClassA in progress...

-----------------------------------------------------------------

sun.misc.Launcher$ExtClassLoader@addbf1

--- delegation ---

sun.misc.Launcher$AppClassLoader@19821f **Current ClassLoader**

-----------------------------------------------------------------

Creating a new instance of NoClassDefFoundError.ReferencingClassA...

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/Maps

at NoClassDefFoundError.ReferencingClassA.init(ReferencingClassA.java:28)

at NoClassDefFoundError.CallerClassA.doSomething(CallerClassA.java:31)

at NoClassDefFoundError.NoClassDefFoundErrorSimulator.main(NoClassDefFoundErrorSimulator.jav

Caused by: java.lang.ClassNotFoundException: com.google.common.collect.Maps

at java.net.URLClassLoader$1.run(URLClassLoader.java:202)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:190)

at java.lang.ClassLoader.loadClass(ClassLoader.java:306)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)

at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

... 3 more

发生了什么?当你在classpath中不包含guava的引用的时候,由于ReferencingClassA在运行期引用了此类,导致了classloader报告找不到此类,从而出现NoClassDefFoundError。

classloader分析

注意:

Java代码 收藏代码

Classloading of NoClassDefFoundError.CallerClassA in progress...

-----------------------------------------------------------------

sun.misc.Launcher$ExtClassLoader@addbf1

--- delegation ---

sun.misc.Launcher$AppClassLoader@19821f **Current ClassLoader**

-------------------------

sun.misc.Launcher$AppClassLoader是系统的classloader,负责根据classpath设置在启动的时候加载应用需要的class。

sun.misc.Launcher$ExtClassLoader是扩展classloader,负责从java_home/lib/etc以及其他使用java.ext.dirs配置的目录从加载扩展java class。

从打印结果可以看出,sun.misc.Launcher$ExtClassLoader是系统classloader的实际父类。

建议处理策略

分析异常堆栈,找到缺少的java类名称,在classpath中验证,确保编译和运行期都能找到此类。

java初学者,如何学习java?

学习Java之前,先别急,静下心来好好想想:自己对学习Java是否有兴趣?自己是否能静下心来坚持不懈地学习?这是个容易但又绝对不应该忽略的问题,必须确信自己对Java感兴趣、而且又有吃苦的准备,那才可能学好Java。

首先找一个Java的基础教程去学习,不管是视频还是书籍都可以。学习Java基础的时候,最重要的就是代码量。一定要多敲,不要眼高手低。往往敲代码的时候才可以发现问题。应该尽量多动手,很多时候,想当然的事情,等写出来运行一下,就会发现不是这么回事儿,Java学习贵在坚持,如果你的耐力和野心不相匹配,那么你最多也就是一个笑话。学完基础教程的内容以后,应该对Java有一个基本的了解了,可以用Java语言写出一些简单的程序,并且用的是最简单的编辑器,比如记事本。这时你往往会比较迷茫,因为你写的东西似乎看起来毫无用处,比如实现一个简单的计算器,读取一个文件等。不要急于进入下一部分,留下几天好好写一些程序,尽可能熟悉这些基础内容。

如果基础内容都掌握熟练了你就应该去学着写一些让你觉得有意思的东西了,所以你应该学习更多的知识。去找一些深入学习的书籍与视频,一步一步去练习,相信经过长期的实践与学习你一定可以学好Java。

其实自始至终,实践是学习Java技术历程中极其重要的一环。脱离了实践,是学不好技术的!

移动端使用openlayers加载手绘地图

参考资料:

openlayers 文档地址:

绘图人员绘制完地图并配准后,发布到 GeoServer(一款基于 java 的开源 GIS 工具集),需在 GeoServer 上设置好投影坐标系(EPSG:3857即墨卡托坐标系,EPSG:4326即WGS84坐标系)、地图瓦片格式、坐标轴范围、地图原点、地图层级、分辨率等参数,一般由后台人员设置。

1、项目引入 openlayers

首先npm 安装 openlayers

注意,在 vue 中必须逐一声明所需的 openlayers 库的对象和方法才能正常使用

2、加载手绘地图

手绘地图以 WMTS (Web Map Tile Service, Web 地图瓦片形式)加载,先创建一个类型为 WMTS 的图层资源,再将其放入创建的 Map 对象的图层资源集合中。

以上,实现加载手绘地图后,移动至指定经纬度。

这样就完成了手绘地图底图的加载,后续如何为地图添加标注(含聚合标注)、覆盖物及路线等,可以查看我的另一篇文章:

java 应用程序中怎样使 写入的文件格式为mat格式

这个太多太多了,很难讲,只能说说常见的.

A

ACE:Ace压缩档案格式

ACT:Microsoft office助手文件

AIF,AIFF:音频互交换文件,Silicon Graphic and Macintosh应用程序的声音格式

ANI:Windows系统中的动画光标

ARC:LH ARC的压缩档案文件

ARJ:Robert Jung ARJ压缩包文件

ASD:Microsoft Word的自动保存文件;Microsoft高级流媒体格式(microsoft advanced streaming

format,ASF)的描述文件;可用NSREX打开 Velvet Studio例子文件

ASF:Microsoft高级流媒体格式文件

ASM:汇编语言源文件,Pro/E装配文件

ASP:动态网页文件;ProComm Plus安装与连接脚本文件;Astound介绍文件

AST:Astound多媒体文件;ClarisWorks“助手”文件

Axx:ARJ压缩文件的分包序号文件,用于将一个大文件压至几个小的压缩包中(xx取01-99的数字)

A3L:Authorware 3.x库文件

A4L:Authorware 4.x库文件

A5L:Authorware 5.x库文件

A3M,A4M:Authorware Macintosh未打包文件

A3W,A4W,A5W:未打包的Authorware Windows文件

B

BAK:备份文件

BAS:BASIC源文件

BAT:批处理文件

BIN:二进制文件

BINHex:苹果的一种编码格式

BMP:Windows或OS/2位图文件

BOOK:Adobe FrameMaker Book文件

BOX:Lotus Notes的邮箱文件

BPL:Borlard Delph 4打包库

BSP:Quake图形文件

BUN:CakeWalk 声音捆绑文件(一种MIDI程序)

C

C0l:台风波形文件

CAB:Microsoft压缩档案文件

CAD:Softdek的Drafix CAD文件

CAM:Casio照相机格式

CAP:压缩音乐文件格式

CAS:逗号分开的ASCⅡ文件

CCB:Visual Basic动态按钮配置文件

CCH:Corel图表文件

CCO:CyberChat数据文件

CCT:Macromedia Director Shockwave投影

CDA:CD音频轨道

CDF:Microsoft频道定义格式文件

CDI:Philip的高密盘交互格式

CDM:Visual dBASE自定义数据模块文件

CDR:CorelDRAW绘图文件;原始音频CD数据文件

CDT:CorelDRAW模板

CDX:CorelDRAW压缩绘图文件;Microsoft Visual FoxPro索引文件

CFG:配置文件

CGI:公共网关接口脚本文件

CGM:计算机图形元文件

CH:OS/2配置文件

CHK:由Windows磁盘碎片整理器或磁盘扫描保存的文件碎片

CHM:编译过的HTML文件

CHP:Ventura Publisher章节文件

CHR:字符集(字体文件)

CHT:ChartViem文件;Harvard Graphics矢量文件

CIF:Adaptec CD 创建器 CD映像文件

CIL:Clip Gallery下载包

CIM:SimCity 2000文件

CIN:OS/2改变控制文件用于跟踪INI文件中的变化

CLASS:Java类文件

CLP:Windows 剪贴板文件

CLL:Crick Software Clicker文件

CLS:Visual Basic类文件

CMD:Windows NT,OS/2的命令文件;DOS CD/M命令文件;dBASEⅡ程序文件

CPI:Microsoft MS-DOS代码页信息文件

CPL:控制面板扩展名,Corel颜色板

CPP:C++代码文件

CPR:Corel提供说明书文件

CPT:Corel 照片-绘画图像

CST:Macromedia Director Cast文件

CUR:Windows光标文件

D

DBF:dBASE文件,一种由Ashton-Tate创建的格式,可以被ACT!、Lipper、FoxPro、Arago、Wordtech、Xbase和类似数据库或与数据库有关产品识别;可用数据文件(能被Excel

97打开);Oracle 8.1.x表格空间文件

DBX:DataBearn图像;Microsoft Visual FoxPro表格文件

DCT:Microsoft Visual FoxPro数据库容器

DCU:Delphi编译单元文件

DCX:Microsoft Visual FoxPro数据库容器;基于PCX的传真图像;宏

DIR:MacromediaDirector文件

DLL:动态链接库

DOC:FrameMaker或FrameBuilder文档;Word Star文档、Word

Perfect文档、Microsoft:Word文档;DisplayWrite文档

DOT:Microsoft Word文档模板

DPL:Borland Delph 3压缩库

DRV:驱动程序

DRW:Micrografx Designer/Draw;Pro/E绘画文件

DSF:Micrografx Designer VFX文件

DSG:DOOM保存的文件

DSM:Dynamic Studio音乐模块(MOD)文件

DSP:Microsoft Developer Studio工程文件

DSQ:Corel QUERY(查询)文件

DST:刺绣机图形文件

DSW:Microsoft Developer Studio工作区文件

DTA:World Bank(世界银行)的STARS数据文件

DTD:SGML文档类型定义(DTD)文件

DTED:地面高度数字数据(图形的数据格式)文件

DTF:Symantec QA相关的数据库数据文件

DTM:DigiTrakker模块文件

DUN:Microsoft拔号网络导出文件

DV:数字视频文件(MIME)

DWG:AutoCAD工程图文件;AutoCAD或Generic CADD老版本的绘图格式

DXR:Macromedia Director受保护(不可编辑)电影文件

E

EDA:Ensoniq ASR磁盘映像

EDD:元素定义文档(FrameMaker+SGML文档)

EDE:Ensoniq EPS磁盘映像

EDK:Ensoniq KT磁盘映像

EDQ:Ensoniq SQ1/SQ2/Ks32磁盘映像

EDS:Ensoniq SQ80磁盘映像

EDV:Ensoniq VFX-SD磁盘映像

EFA:Ensoniq ASR文件

EFE:Ensoniq EPS文件

EFK:Ensoniq KT文件

EFQ:Ensoniq SQ1/SQ2/Ks32文件

EFS:Ensoniq SQ80文件

EFV:Ensoniq VFX-SD文件

EMD:ABT扩展模块

EMF:Windows增强元文件

EML:Microsoft Outlook Express邮件消息(MIME RTC822)文件

EXE:可执行文件(程序)

F

FAV:Microsoft Outlook导航条

FAX:传真类型图像

FCD:虚拟CD-ROM

FDF:Adobe Acrobat表单文档文件

FLA:Macromedia Flash电影

FND:Microsoft Explorer保存的搜索文件(Find applet)

FON:系统字体

FRT:Microsoft FoxPro报表文件

FRX:Visual Basic表单文本;Microsoft FoxPro报表文件

FXP:经Microsoft FoxPro编译的源文件

G

GDM:铃声、口哨声和声音板模块格式

GetRight:GetRight未完成的下载文件

GHO:Norton 克隆磁盘映像

GID:Windows 95全局索引文件(包括帮助状态)

GIF:CompuServe位图文件

GL:动画格式

GRP:程序管理组

H

HEX:Macintosh BinHex2.0文件

HLP:帮助文件;Date CAD Windows帮助文件

HPP:C++程序头文件

HQX:Macintosh BinHex 4.0文件

HT:HyperTerminal(超级终端)

HTM,HTML:超文本文档

HTT:Microsoft超文本模板

HTX:扩展HTML模板

I

ICO:Windows图标

IDX:Microsoft FoxPro相关数据库索引文件;Symantec QA相关数据库索引文件;Microsoft Outlook

Express文件

IMG:GEM映像

INF:信息文件

INI:初始化文件;Mwave DSP Synth的“nwsynth.ini” GMS安装;Cravis Ultrasound bank安装

INP:Oracle 3.0版或早期版本的表单源代码

INRS:INRS远程通信声频

INS:InstallShield安装脚本;X-Internet签字文件;Ensoniq EPS字簇设备;Cell/ⅡMAC/PC抽样设备

INT:中间代码,当一个源程序经过语法检查后编译产生一个可执行代码

IOF:Findit文档

IQY:Microsoft Internet查询文件

ISO:根据ISD 9660有关CD-ROM文件系统标准列出CD-ROM上的文件

ISP:X-Internet签字文件

IST:数字跟踪设备文件

ISU:InstallShield卸装脚本

IT:脉冲跟踪系统音乐模块(MOD)文件

ITI:脉冲跟踪系统设备

ITS:脉冲跟踪系统抽样,Internet文档位置

IV:Open Inventor中使用的文件格式

IVD:超过20/20微观数据维数或变量等级文件

IVP:超过20/20的用户子集配置文件

IVT:超过20/20表或集合数据文件

IVX:超过20/20微数据目录文件

IW:Idlewild屏幕保护程序

IWC:Install Watch文档

J

J62:Ricoh照相机格式

JAR:Java档案文件(一种用于applet和相关文件的压缩文件)

JAVA:Java源文件

JAR:Java档案文件(一种用于applet和相关文件的压缩文件)

JAVA:Java源文件

JFF,JFIF,JIF:JPEG文件

JPE,JPEG,JPG:JPEG图形文件

JS:javascript源文件

JSP:HTML网页,其中包含有对一个Java servlet的参考

K

KAR:卡拉OK MIDI文件(文本+MIDI)

L

LAB:Visual dBASE标签文件

LBT,LBX:Microsoft FoxPro标签文件

LDB:Microsoft Access加锁文件

LHA:LZH更换文件后缀

LOG:日志文件

LZH:LH ARC压缩档案

M

M1V:MPEG相关文件(MIME"mpeg"类型)

M3D:Corel Motion 3D动画文件

M3U:MPEG URL(MIME声音文件)

MAM:Microsoft Access宏

MAQ:Microsoft Access查询文件

MAR:Microsoft Access报表文件

MBX:Microsoft Outlook保存email格式;Eudora邮箱

MCW:Microsoft Word的Macintosh文档

MDB:Microsoft Access数据库

MDN:Microsoft Access空数据库模板

MDW:Microsoft Access工作组文件

MID:MIDI音乐

MMM:Microsoft多媒体电影

MOV:QuickTime for Windows电影

MP2:第二层MPEG音频文件

MP3:第三层MPEG音频文件

MPA:MPEG相关文件,MIME“mpeg类型”

MPE,MPEG,MPG:MPEG动画文件

MPP:Microsoft工程文件;CAD绘图文件格式

MPR:Microsoft FoxPro菜单(已编译)

MSI:Windows 安装器包

MSN:Microsoft 网络文档;Descent Mission文件

O

OBD:Microsoft Office活页夹

OBJ:对象文件

OBZ:Microsoft Office活页夹向导

OCX:Microsoft对象链接与嵌入定制控件

ODS:Microsoft Outlook Express邮箱文件

OFT:Microsoft Outlook模板

OPX:OPL扩展DLL(动态链接库)

OSS:Microsoft Office查找文件

OST:Microsoft Exchange / Outlook 离线文件

P

PAL:压缩文件

PART:Go!Zilla部分下载文件

PAS:Pascal源代码

PCS:PICS动画文件

PDF:Adobe Acrobat

可导出文档格式文件(可用Web浏览器显示);Microsoft系统管理服务器包定义文件;NetWare打印机定义文件

PHP,PHP3:包含有PHP脚本的HTML网页

PHTML:包含有PHP脚本的HTML网页;由Perl分析解释的HTML

PM5:Pagemaker 5.0文件

PM6:Pagemaker 6.0文件

PPS:Microsoft Powerpoint幻灯片放映

PPT:Microsoft Powerpoint演示文稿

PRF:Windows系统文件,Macromedia导演设置文件

PSD:Adobe photoshop位图文件

PSM:Protracker Studio模型格式;Epic游戏的源数据文件

PST:Microsoft Outlook个人文件夹文件

PWL:Windows 95口令列表文件

Q

QIF:QuickTime相关图像(MIME);Quicken导入文件

QT,QTM:QuickTime电影

QTI,QTIF:QuickTime相关图像

QTP:QuickTime优先文件

QTS:Mac PICT图像文件;QuickTime相关图像

QTX:QuickTime相关图像

R

RA:RealAudio声音文件

RAM:RealAudio元文件

RAR:RAR压缩档案(Eugene Roshall格式)

REC:录音机宏;RapidComm声音文件

REG:注册表文件

REP:Visual dBASE报表文件

RES:Microsoft Visual C++资源文件

RM:RealAudio视频文件

RMF:Rich Map格式(3D游戏编辑器使用它来保存图)

ROM:基于盒式磁带的家庭游戏仿真器文件(来自Atari

2600、Colecovision、Sega、Nintendo等盒式磁带里的ROM完全拷贝,在两个仿真器之间不可互修改)

Rxx:多卷档案上的RAR压缩文件(xx=1~99间的一个数字)

S

SAV:游戏保存文件

SB:原始带符号字节(8位)数据

SBK:Creative Labs的Soundfont 1.0 Bank文件;(Soundb laster)/EMU SonndFont v1.x

Bank文件

SBL:Shockwave Flash对象文件

SCF:Windows Explorer命令文件

SCH:Microsoft Schedule+1

SCP:拨号网络脚本文件

SCR:Windows屏幕保护;传真图像;脚本文件

SFX:RAR自解压档案

SHTML:含有服务器端包括(SSI)的HTML文件

SPL:Shockwave Flash对象;DigiTrakker抽样

SQL:Informix SQL查询;通常被数据库产品用于SQL查询(脚本、文本、二进制)的文件扩展名

STM:.shtml的短后缀形式,含有一个服务端包括(SSI)的HTML文件;Scream Tracker V2音乐模块(MOD)文件

STR:屏幕保护文件

SWA:在Macromedia导演文件(MP3文件)中的Shockwave声音文件 SYS:系统文件

T

T64:Commodore 64仿真器磁带映像文件

THEME:Windows 95桌面主题文件

TIF,TIFF:标签图像文件格式(TIFF)位图

TMP:Windows临时文件

TRM:终端文件

TXT:ASCⅡ文本格式的声音数据

TZ:老的压缩格式文件

V

VBA:VBase文件

VBP:Microsoft Visual Basic工程文件

VBW:Microsoft Visual Basic工作区文件

VBX:Microsoft Visual Basic用户定制控件

VQE,VQL:Yamaha Sound-VQ定位器文件

VQF:Yamaha Sound-VQ文件(可能出现标准)

VRF:Oracle 7配置文件

VSL:下载列表文件(GetRight)

W

WAB:Microsoft Outlook文件

WAD:包含有视频、玩家水平和其他信息的DOOM游戏的大文件

WAL:Quake 2正文文件

WAV:Windows波形声形

WBK:Microsoft Word备份文件

WFM:Visual dBASE Windows表单

WFN:在CorelDRAW中使用的符号

WIZ:Microsoft Word向导

WRL:虚拟现实模型

WWL:Microsoft Word内插器文件

X

XLK:Microsoft Excel备份

XLL:Microsoft Excel内插器文件

XLM:Microsoft Excel宏

XLS:Microsoft Excel工作单

XLT:Microsoft Excel模板

XLV:Microsoft Excel VBA模块

XLW:Microsoft Excel工作簿/工作区

Z

ZAP:Windows软件安装配置文件

ZIP:Zip文件

000-999:用于为老版本(或备份)文件编号(比如:被安装程序改变的CONFIG.SYS文件);又可用于为小范围的PC应用程序的多个用户相关数据文件编号

12M:Lotus 1-2-3 97 SmartMaster文件

123:Lotus 1-2-3 97文件

2D:VersaCAD的2维绘画文件

2GR,3GR:在Windows之下的VGA图形驱动程序/配置文件

386:在386或更高级处理器上使用的文件

3D:VersaCAD的3维绘画文件

3DM:3D NURBS建模器,Rhino

3DS:3D Studio(DOS下)格式文件

386:在386或更高级处理器上使用的文件

4GE:Informix 4GL编译后代码

4GL:Informix 4GL源代码

关于javaopenmap和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。