版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、TOMCAT配置JMX 设置密码文件非常重要,特别是在多用户的环境下。我按以下步骤在jdk 1.5.0_08jrelibmanagement目录下建立密码文件:-用密码模板文件(文件名jmxremote.password.template)拷贝出一个名为jmxremote.password的新文件-将密码文件的文件权限设置为只有你能读写-为角色设置密码,如monitorRole 和controlRole-当启动JVM时系统属性已经设置成表2的样子 为了能够在启动Tomcat服务器时启用远程JMX监测,要对位于CATALINA_HOME/bin目录下的 T
2、omcat启动脚本(catalina.bat 或catalina.sh)做如下修改:Linux下的sh文件CATALINA_OPTS="-Dcom.sun.management.jmxremote.port=8901-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=true-Dcom.sun.management.jmxremote.password.file=jmxremote.password-Dcom.sun.management.jmxremote.
3、access.file=jmxremote.access-Djava.rmi.server.hostname=9" 在bin文件夹中加入jmxremote.password和jmxremote.accessjmxremote.access:admin readwritemonitor readonly jmxremote.password:admin testmonitor test 两文件的权限为400Jmanager上的url地址配置service:jmx:rmi:/jndi/rmi:/localhost:8901/jmxrmi
4、 复制catalina.sh成jmxcatalina.sh把startup.sh中catalina.sh换成jmxcatalina.shtomcat6.0下jmx的远程访问配置在网上找了一大堆资料,折腾了大半天时间,但结果却不尽人意。 说下我的测试环境:tomcat6.08(解压版) + jdk6 步骤: 1. 修改catalina.bat(位于CATALINA_HOME/bin里面),找到"rem - Execute The Requested Command"这行,在其下面添加如下语句:
5、0;set CATALINA_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9990 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=./conf/jmxremote.password -Dcom.sun.management.jmxremote.access.file=./co
6、nf/jmxremote.access 说明:网上好多都是说设置JAVA_OPTS,但我没成功。最后参考了tomcat6的说明文档/tomcat-6.0-doc/monitoring.html才设置成功 2. 将JAVA_HOME/jre/lib/management下jmxremote.access、jmxremote.password两个文件放到CATALINA_HOME/conf目录里面,如果没有jmxremote.password,则从JAVA_HOME/jre/lib/management/jm
7、xremote.password.template拷贝出一个名为jmxremote.password的新文件,如果还不清楚,还可以参考 修改jmxremote.password的访问权限,即只有文件的所有者可以更改文件,通常这个所有者就是运行tomcat的系统用户,其他人只有只读权限或根本看不到这个文件。 说明:不修改可不可以我没试过,文件权限的修改可以参考3. 使用JDK自带的jconsole测试 a.启动tomcat,startup.bat b.打开命令行,输入jconsole(大家都该配置JAVA_HOME了吧) c.在打开的
8、jconole中选择远程连接地址、端口、用户名和密码 localhost:9990(端口即步骤1的中的配置) 用户: monitorRole 密码:QED jconsole监控远程linux tomcat运行情况的配置 (转)来自: 步骤如下:1.编辑tomcat/bin/catalina.shBash代码 1. vi catalina.sh 在其中“# - Execute The Requested Command -”之前插入新的一行(中间没有换行),内容如下:Vi cata
9、lina.sh代码 1. CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname= -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxrem 2. ote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true"
10、; 插入后,应该如图: (其中的选中部分为新增内容)2.编辑jmxremote.access和jmxremote.passwordBash代码 1. cd /usr/java/jdk1.6.0_18/jre/lib/management 2. mv jmxremote.password.template jmxremote.password 3. chmod 600 jmxremote.access jmxremote.password &
11、#160;4. vi jmxremote.password jmxremote.access 一般保持原始内容不变即可。对于jmxremote.password,将 其中的:# monitorRole mzxwswj# controlRole mzxwswj井号注释取消掉。其中monitorRole为只拥有只读权限的角色,controlRole有更高权限:读写等等。 3.a.最后将端口加入防火墙信任列表Bash代码 1. vi /etc/sysconfig/iptables
12、编辑iptables,加入新一行内容:-A RH-Firewall-1-INPUT -p tcp -m state -state NEW -m tcp -dport 12345 -j ACCEPT如图(选中内容为新增的): b.启动tomcatBash代码 1. /usr/local/tomcat/bin/startup.sh 而我们在上面配置的jmx代理就会随tomcat一起启动。可以使用netstat -an | grep 12345命令查看端口是否正常启动。 至此,服务器端配置完毕。4.使用windows客户机上的jcons
13、ole连接服务器端 进行监控。打开C:Program FilesJavajdk1.6.0_10binjconsole.exe,输入服务器端相关信息:点击“连接”,进入监控页面: linux下tomcat优化,设置最大连接数,内存,Jconsole监控 1. 添加tomcat管理员帐户添加管理员账户tomcat-users.xml< ?xml version='1.0' encoding='utf-8'?>2. TOMCAT内存基 本原理:JAVA程序启动时都会JVM 都会分配一个初始内存和最大内存给这个应用程序。这个初
14、始内存和最大内存在一定程度都会影响程序的性能。比如说在应用程序用到最大内存的时候,JVM是要 先去做垃圾回收的动作,释放被占用的一些内存。 所以想调整Tomcat的启动时初始内存和最大内存就需要向JVM声明,一般的JAVA程序在运行都可以通过中-Xms -Xmx来调整应用程序的初始内存和最大内存: 如:java -Xms64m -Xmx128m application.jar.方法1:如果是使用的tomcat_home/bin/catalina.sh(linux)或catalina.bat(win)启动的:修改相应文件,加上下面这句:JAVA_OPTS='$JAVA_OPTS -ser
15、ver -Xmx800m -Xms512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true'-ms是最小内存,mx是最大内存。这里设置最小内存为512M,最大内存为 800M。$JAVA_OPTS是保留先前设置。 CATALINA_OPTS似乎可以与JAVA_OPTS不加区别的使用。对于catalina.bat则是如此设置: set JAVA_OPTS=-Xms1024m -Xmx1024m方法2:如果使用的winnt服务启动:在 命令行键入regedit,找到 HKEY_LOCAL_MACHINE-&
16、gt;SOFTWARE->Apache Software Foundation->Procrun 2.0->Tomcat5->Parameters的Java,修改Options的值,新添加属性:-Xms64m-Xmx128m 或者直接修改JvmMx(最大内存)和JvmMs(最小内存)。有人建议Xms和Xmx的值取成一样比较好,说是可以加快内存回收速度。修改完之后,可以访问:8080/manager/status查看内存大小。也可以编写下面测试tomcat内存大小的jsp页面:< %Runtime lRuntime = Runtime.
17、getRuntime();out.println("* BEGIN MEMORY STATISTICS *");out.println("Free Memory: "+lRuntime.freeMemory()+"");out.println("Max Memory: "+lRuntime.maxMemory()+"");out.println("Total Memory: "+lRuntime.totalMemory()+"");out.println(
18、"Available Processors : "+lRuntime.availableProcessors()+"");out.println("* END MEMORY STATISTICS *");%>3. 增加tomcat连接数在tomcat配置文件server.xml中的配置中,和连接数相关的参数有:minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为75acceptCount:允许的最大连接数,应大于等于max
19、Processors,默认值为100enableLookups:是否反查域名,取值为:true或false。为了提高处理能力,应设置为falseconnectionTimeout: 网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。 其中和最大连接数相关的参数为maxProcessors和acceptCount。如果要加大并发连接数,应同时加大这两个参数。 web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。如:maxThreads="150"minS
20、pareThreads="25"maxSpareThreads="75"acceptCount="100"/>maxThreads="150" 表示最多同时处理150个连接minSpareThreads="25" 表示即使没有人使用也开这么多空线程等待maxSpareThreads="75" 表示如果最多可以空75个线程,例如某时刻有80人访问,之后没有人访问了,则tomcat不会保留80个空线程,而是关闭5个空的。acceptCount="100"
21、 当同时连接的人数达到maxThreads时,还可以接收排队的连接,超过这个连接的则直接返回拒绝连接。4.使用Jconsole监控在需要监控的tomcat_home/bin/catalina.sh(linux)文件中添加下面语句:JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=8089-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=false"设置一个新的端口号。然后在本机dos下输入Jc
22、onsole命令,弹出“JAVA 监视和管理控制台”,如果是远程监视,就输入:, 这个port就上上面配置的8089,然后再输入远程主机的用户名跟口令,就可以监控啦。 传说这里面还可以加一句话"-Djava.rmi.server.hostname=0" 没有试过 b汗 先拷贝上一句话,留作记忆: 再找找远程tomcat的jmx配置,多了个参数-Djava.rmi.server.hostname=ip_or_hostname。然后我就加上了 服务器的IP。然后再连接就可以了。对这样的情况有点不解,再官方又没有找任何这个参数的说明。回来后,再试用一下。在虚
23、拟机的开一个linux,然后配 上jmx参数(没有java.rmi.server.hostname的)。结果可以连接。. 公司的为什么不能连接呢?为什么加了IP就行?怀疑多网卡。然后在虚拟机上再加一个网上,然后启动 tomcat ,恩,不能连接(没有server.hostname),然后再加上java.rmi.server.hostname启动 tomcat ,结果或以连接。原来java.rmi.server.hostname是这个作用。 1.测试环境服 务器:RedHat Linux 3.4.3-9.EL4(内核版本 2.6.9-5.EL),Tomcat5.5.20,Sun JDK
24、 1.5.0_09,JProfiler 4.3.2 for linux(安装包:jprofiler_linux_4_3_2.sh) 客户端:Windows XP,JProfiler 4.3.2 for windows(安装包:jprofiler_windows_4_3_2.exe)2.JProfiler软件下载地址 http:/www.ej-3.客户端 JProfiler 安装 略4.服务器端 JProfiler 安装: 把 jprofiler_linux_4.3.2.sh 上传到到服务器,假设路径为 /opt/jprofiler# cd /opt/jprofil
25、er# chmod +x *.sh # ./jprofiler_linux_4.3.2.sh -c按照提示来安装,提示都很简单,不在多说。安装路径选择 /opt/jprofiler4注意,这里的 -c 意思是用字符方式来安装,如果机器上没有 X 则加上该参数.5.客户端连接配置1). 运行 JProfiler 。第一次打开会有向导,忽略它。 2). 选择 Session->Integration Wizard->New Remote Integratation 3). 选择 On a remote computer;Platform of remote
26、 computer 选择 Linux x86/AMD 64;Next 4). 输入服务器 IP ;Next 5). 输入服务器上的 jprofiler 的安装路径,如 /opt/jprofiler4 ;next 6). 选择服务器的 JDK 环境,这里是:Sun,1.5.0,hotspot;next 7). 输入端口:这里是默认值 8849;next 8). 选择启动模式:这里选第一种 wait for a connection from the jprofiler GUI;next 9). 这里会列出需要在服务器端做的配置:Inte
27、gration type: Generic applicationSelected JVM: Sun 1.5.0 (hotspot)Startup mode: Wait for JProfiler GUI(1) Please insert-agentlib:jprofilerti=port=8849 -Xbootclasspath/a:/opt/jprofiler4/bin/agent.jarinto the st
28、art command of your remote application right after the java command.(2) Please add/opt/jprofiler4/bin/linux-x86to the environment variable LD_LIBRARY_PATH.A remote session named Remote applicatio
29、n on 5 will be created that connects to a running instance of the remote application that is started with the modified start command.6.服务器端的配置(1)修改系统环境配置文件 /etc/profile ,增加J
30、PROFILER_HOME=/opt/jprofiler4/bin/linux-x86export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$JPROFILER_HOME(2)修改TOMCAT启动文件catalina.sh,添加-agentlib:jprofilerti=port=8849 -Xbootclasspath/a:/opt/jprofiler4/bin/agent.jar 内容到CATALINA_OPTS中;“-agentlib:jprofilerti=port=8849 -Xbootclasspath/a:/opt/jp
31、rofiler4/bin/agent.jar ” 此内容由客户端软件生成CATALINA_OPTS="$CATALINA_OPTS -Xms128m -Xmx128m $JPDA_OPTS -agentlib:jprofilerti=port=8849 -Xbootclasspath/a:/opt/jprofiler4/bin/agent.jar"7.Reboot Linux and startup Tomcat using startup.sh; The log of tomcat wh
32、ich is $CATALINA_HOME/logs/catalina.out will show: JProfiler> Protocol version 23 JProfiler> Using JVMTI JProfiler> 32-bit library JProfiler> Listening on port: 8849. JProfiler> Native library
33、60;initialized JProfiler> Waiting for a connection from the JProfiler GUI 8.启动客户端软件 点击jprofiler菜单 session>start center>Open Session Available session configurations中列出了刚才配置的连接,选中使用就OK了!9.The log of tomcat
34、which is $CATALINA_HOME/logs/catalina.out will show: JProfiler> Using dynamic instrumentation JProfiler> Time measurement: elapsed time JProfiler> CPU profiling enabled JProfiler> Hotspot compiler enable
35、d JProfiler> Starting org/apache/catalina/startup/Bootstrap 10.当中断JProfiler连接时 The log of tomcat which is $CATALINA_HOME/logs/catalina.out will show: JProfiler> Disconnected. Waiting for reconnection. JProfiler> Listen
36、ing on port: 8849. 经过我的测试发现了有以上一些问题1、)并不是将-agentlib:jprofilerti=port=8849 -Xbootclasspath/a:/opt/jprofiler4/bin/agent.jar 加入到CATALINA_OPTS 中而是加入到 JAVA_OPTS中,加入格式如下所示:其余步同上 JAVA_OPTS="$JAVA_OPTS "-agentlib:jprofilerti=port=8849
37、; JAVA_OPTS="$JAVA_OPTS "-Xbootclasspath/a:/opt/jprofiler5/bin/agent.jar下面是我采用过的一个完整的配置if -r "$CATALINA_HOME"/bin/tomcat-juli.jar then JAVA_OPTS="$JAVA_OPTS "-Xms128m JAVA_OPTS="$JAVA_OPTS &
38、quot;-Xmx256m JAVA_OPTS="$JAVA_OPTS "-XX:PermSize=32m JAVA_OPTS="$JAVA_OPTS "-XX:MaxNewSize=128m JAVA_OPTS="$JAVA_OPTS "-XX:MaxPermSize=64m JAVA_OPTS="$JAVA_OPTS "-Dc
39、om.sun.management.jmxremote JAVA_OPTS="$JAVA_OPTS "-Dcom.sun.management.jmxremote.port=9009 JAVA_OPTS="$JAVA_OPTS "-Dcom.sun.management.jmxremote.authenticate=false JAVA_OPTS="$JAVA_OPTS "-Dcom.sun.management.jmxremote.ssl
40、=false JAVA_OPTS="$JAVA_OPTS "-agentlib:jprofilerti=port=8849 JAVA_OPTS="$JAVA_OPTS "-Xbootclasspath/a:/opt/jprofiler5/bin/agent.jar JAVA_OPTS="$JAVA_OPTS "-Djava.util.logging.manager=org.apache.juli.ClassLoade
41、rLogManager" "-Djava.util.logging.config.file="$CATALINA_BASE/conf/perties"fi 当时遇到的问题是jconsole无法连接上远程Linux上的JVM,Google看到Sun官方bugdatabase有人讲是bug,就没再理。今天再次Google,在Run "hostname -i" command. If it reports , JConsole would not be able
42、 to connect to the JVM running on that Linux machine. To fix this issue, edit /etc/hosts so that the hostname resolves to the host address.马上修改/etc/hosts,连接成功了。对于上面提到“在一个jsp中进行while (true);死循环”的测试,一个个线程查看,发现有一个Thread在_jspService方法上始终处于Runnable状态。看来Programmer还是得用Google 【Linux查看tomcat版本】【Li
43、nux查看tomcat版本】 一、不同的tomcat查看版本可能不同,例如有的直接执行./version.sh就可以,其他就没有;一般来说,在tomcat启动时就会有版本信息,如:信息: Initializing Coyote HTTP/1.1 on http-80232009-5-6 16:38:09 org.apache.catalina.startup.Catalina load信息: Initialization processed in 1673 ms2009-5-6 16:38:10 org.apache.catalina.core.StandardService sta
44、rt信息: Starting service Catalina2009-5-6 16:38:10 org.apache.catalina.core.StandardEngine start信息: Starting Servlet Engine: Apache Tomcat/6.0.16 另外还可以在以下文件中找到,但据tomcat版本不一样,文件位置稍有差异:Tomcat5:tomcat_homeserverlibcatalina.jar orgapachecatalinautilServerIpertiesTomcat6:tomcat_home libcat
45、alina.jar orgapachecatalinautilServerIperties (这里的两个jar包可以下载下来用rar打开然后再查看。)# Licensed to the Apache Software Foundation (ASF) under one or more# contributor license agreements. See the NOTICE file distributed with# this work for additional information regarding copyright ownership.
46、# The ASF licenses this file to You under the Apache License, Version 2.0# (the "License"); you may not use this file except in compliance with# the License. You may obtain a copy of the License at# /licenses/LICENSE-2.0# Unless requir
47、ed by applicable law or agreed to in writing, software# distributed under the License is distributed on an "AS IS" BASIS,# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.# See the License for the specific language governing permissions and# limitations under the Li
48、=Apache Tomcat/6.0.16server.number=server.built=Jan 28 2008 11:35:29运用JMX监控TomcatTomcat的全面监控的方式。参考:/tomcat-7.0-doc/monitoring.html1、先配Tomcat的启动语句,window下tomcat的bin/catalina.bat(linux为catalina.sh),在头上注释部分(.bat为rem、.sh为#)后面加上set JAVA_OPTS=-Dcom.sun.manag
49、ement.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true(linux为JAVA_OPTS=-Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true)2、修改jmx远程访问授权。默认为JAVA_HOME/jre/lib/ma
50、nagement下jmxremote.access、jmxremote.password(缺省系统提供了个模版jmxremote.password.template改下名就成)注意:linux下需要该权限,chmod 600 jmxremote.access, chmod 600 jmxremote.passwordwindow下特麻烦,现需要jdk装在NTFS文件系统下,选中文件,点右键“属性”-安全,点“高级”,去掉“从父项继承.”,弹出窗口中选“删除”,这样删除了所有访问权限。再选“添加”-高级,“立即查找”,选中你的用户,例administrator,点“确定",“确定&qu
51、ot;。来到权限窗口,勾选"完全控制",点"确定",OK了。 3、用jconsole连接远程linux服务时, IP地址和port都输入正确的情况下,仍然是连接失败 vi /etc/hosts,将hostname对应的IP改为真实IP 4、测试JMX。启动tomcat,在window“命令行窗口”中输入netstat -an看下8999端口打开没有。若没有,则前面没配对。若已打开,则可在另一台机器的“命令行窗口”中输入jconsole,打开jdk自带的jmx客户端。选远程连接,录入tomcat所在机器的IP,端口例192.1
52、68.10.10:8999,帐号、密码在jmxremote.password中,如帐号controlRole,密码R&D(缺省monitorRole只能读,controlRole能读写,jmxremote.access中可配置)。点“连接”。看到图就行了。5、关于数据。Mbean属性页中给出了相应的数据,Catalina中是tomcat的,java.lang是jvm的。对于加粗的黑体属性值,需双击一下才可看内容5、关于编程。?123456789101112131415161718192021222324252627282930313233343536373839404142434445
53、464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120public class JMXTest /* * param args
54、60; */ public static void main(String args) try String jmxURL = "service:jmx:rmi:/jndi/rmi
55、:/3:8999/jmxrmi"/tomcat jmx url JMXServiceURL serviceURL = new JMXServiceURL(jmxURL); &
56、#160; Map map = new HashMap(); String credentials = new String "monitorRole" , "QED"
57、; map.put("jmx.remote.credentials", credentials); JMXConnector connector = JMXConnectorFactory.connect(serviceURL, map);
58、60; MBeanServerConnection mbsc = connector.getMBeanServerConnection(); /端口最好是动态取得
59、160; ObjectName threadObjName = new ObjectName("Catalina:type=ThreadPool,name=http-8080"); MBeanInfo mbInfo = mbsc.getMBeanInfo(threadObjName);
60、 String attrName = "currentThreadCount"/tomcat的线程数对应的属性值 MBeanAttributeInfo mbAttributes = mbI
61、nfo.getAttributes(); System.out.println("currentThreadCount:"+mbsc.getAttribute(threadObjName, attrName); &
62、#160; /heap for(int j=0;j <mbsc.getDomains().length;j+) System.out.println("#"+mbsc.getDomains()j);&
63、#160; Set MBeanset = mbsc.queryMBeans(null, null); System.out.println("MB
64、eanset.size() : " + MBeanset.size(); Iterator MBeansetIterator = MBeanset.iterator(); while (MBeansetIterator.hasNext()
65、 ObjectInstance objectInstance = (ObjectInstance)MBeansetIterator.next(); ObjectName objectName&
66、#160;= objectInstance.getObjectName(); String canonicalName = objectName.getCanonicalName(); System.ou
67、t.println("canonicalName : " + canonicalName); if (canonicalName.equals("Catalina:host=localhost,type=Cluster") &
68、#160; / Get details of cluster MBeans System.out.printl
69、n("Cluster MBeans Details:"); System.out.println("="); &
70、#160; /getMBeansDetails(canonicalName); String canonicalKeyPropList = objectName.getCanonicalKeyPropertyListString(); &
71、#160; /- system - ObjectName runtimeObjName = new
72、 ObjectName("java.lang:type=Runtime"); System.out.println("厂商:"+ (String)mbsc.getAttribute(runtimeObjName, "VmVendor"); Syste
73、m.out.println("程序:"+ (String)mbsc.getAttribute(runtimeObjName, "VmName"); System.out.println("版本:"+ (String)mbsc.getAttribute(runtimeObjName, "VmVersion");
74、160; Date starttime=new Date(Long)mbsc.getAttribute(runtimeObjName, "StartTime"); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH
75、:mm:ss"); System.out.println("启动时间:"+df.format(starttime); Long timespan=(Long
76、)mbsc.getAttribute(runtimeObjName, "Uptime"); System.out.println("连续工作时间:"+JMXTest.formatTimeSpan(timespan); /- JVM -
77、 /堆使用率 ObjectName heapObjName = new ObjectName("java.lang:type=Memory"); MemoryUsage hea
78、pMemoryUsage = MemoryUsage.from(CompositeDataSupport)mbsc.getAttribute(heapObjName, "HeapMemoryUsage"); long maxMemory = heapMemoryUsage.getMax();/堆最大
79、60; long commitMemory = heapMemoryUsage.getCommitted();/堆当前分配 long usedMemory = heapMemoryUsage.getUsed(); System.out.println("heap:"+(double)usedMemory*100/commitMemory+"%");/堆使用率 MemoryUsage nonheapMem
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- JJF(陕) 034-2020 条码水准标尺校准规范
- 《教学课件急性胃炎》课件
- 初中数学解题方法-配方法课件
- 提升外部合作伙伴关系的管理措施计划
- 水资源保护与社区发展的融合计划
- 节水型城市的建设标准计划
- 长期项目跟进的秘书工作计划
- 带式压榨过滤机相关项目投资计划书
- 医疗仪器设备制造相关行业投资方案
- 智慧城市相关行业投资规划报告范本
- 2020年同等学力申硕《计算机科学与技术学科综合水平考试》历年真题及答案
- 带式输送机机械设计课程设计(带式输送机)
- 结核性脑膜炎护理查房课件
- 直播推广合作合同:2024年主播专属流量投放合同
- 2024年度幼儿园安全副园长思想工作总结
- 垃圾填埋场运行管理方案
- 电力工程起重吊装施工方案
- 2024年业务员薪酬管理制度(五篇)
- 【公开课】+纪念与象征-空间中的实体艺术+课件高中美术人美版(2019)美术鉴赏
- GB/T 44588-2024数据安全技术互联网平台及产品服务个人信息处理规则
- 大学生职业生涯规划成品
评论
0/150
提交评论