精华内容
下载资源
问答
  • 实验报告 实验报告序号实验一 实验名称:Java开发环境安装及配置 宏 学号 实验日期 2016年9月3日 实验类別 01验证性实验或基础性实验 口2综合性实验 3设计性实验 口4创新性实验和研究性实验 教师评语 实验成绩 教师...
  • 所以我做测试的时候会先注释过滤器,但是测试生产环境上项目我不能这么做 那么如何用postman或者jmeter或者其他什么工具做测试呢? 本来是想弄自动化接口测试的 各位开发、测试大神求帮忙~~~~~ (吐槽:...
  • 目录下载JDK JRE安装JDK JRE环境配置java环境验证 下载JDK JRE 肯定去官网下呀 点我进官网下载JDK hmmm,你是啥系统的你就去下载什么版本的java,大部分都是windows系统 看看是32位还是64位系统 64位下载这个 32...

    魔爪终于伸向了java,一步一步来吧

    下载JDK JRE

    肯定去官网下呀
    点我进官网下载JDK
    hmmm,你是啥系统的你就去下载什么版本的java,大部分都是windows系统
    看看是32位还是64位系统
    64位下载这个
    在这里插入图片描述
    32位下载这个
    在这里插入图片描述
    怎么下载我就不用赘述了吧,他会让你注册一个账号,你注册了就可以下载了。

    安装JDK JRE

    点开刚刚下载的那个东西
    系统默认会下载到c盘,
    我看网上说类似这种 语言的运行环境 推荐装在C盘,于是乎我也把他装C盘里去了
    如果你不想你点那个更改就好啦。(不过这个就放C盘比较好以免你后面弄混)
    不过你得记住这个JDK你安装的路径,后面配置环境有用
    在这里插入图片描述
    上面那个装的是jdk,下面这个装的是jre。
    *如果上一步更改了路径,那么,这个安装路径应该和上面jdk的安装路径一样,比如说我这个就和上面jdk的安装路径一样,是C:\Program Files\Java*
    只要这个jre的文件夹和jdk文件夹装在同一个文件夹就行了
    上一步没更改路径的话,直接点下一步就好了
    在这里插入图片描述

    环境配置

    看着图走
    在这里插入图片描述
    在这里插入图片描述
    这里注意一下嗷,是在系统变量里新建JAVA_HOME,而不是用户变量里面新建
    那个变量值呢,就写你刚刚记住的那个jdk安装的路径就好了,把那个安装路径复制进来
    在这里插入图片描述
    在这里插入图片描述

    %JAVA_HOME%\jre\bin
    

    在这里插入图片描述
    点击确定,然后确定。打开path变量确认一下是否已经成功保存变量
    然后就要在系统变量里面新建一个ClassPath变量
    变量名就叫Classpath
    变量值

    .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 
    

    在这里插入图片描述
    这样就行了,点击确定确定确定确定
    环境就配置好了

    java环境的验证

    既然装好了,我们就来验证一下
    按win+r,跳出一个下面这样的框框,输入cmd点击确定进去
    在这里插入图片描述
    得到一个这样的黑框框
    在这里插入图片描述
    输入java
    在这里插入图片描述
    输入javac
    在这里插入图片描述
    O呼呼呼,漫漫长路,java就配置好了
    mo

    展开全文
  • 怎么在Linux上构建java,mysql以及Tomcat服务 首先,简单介绍几个命令: rpm -qa 是查看所有安装的软件... 配置java环境 在linux终端输入 rpm -qa | grep java ,查看系统中是否自带java 相关程序。一般情况下,会自...

    怎么在Linux上构建java,mysql以及Tomcat服务

    首先,简单介绍几个命令:

    rpm -qa 是查看所有安装的软件
    --nodeps 不验证软件包的依赖关系
    -e 删除软件
    rpm –qa | grep java 查看和java相关的包

    一. 配置java环境

    • 在linux终端输入 rpm -qa | grep java ,查看系统中是否自带java 相关程序。一般情况下,会自带openJDK,此时我们需要将其卸载。输入命令:rpm -e --nodeps
      在这里插入图片描述
      删除系统自带的jdk.

    • 创建java保存的目录,一般将其放在 /usr/local/java 目录下。
      命令:mkdir /usr/local/java 。

    • 下载java 文件,或者使用FileZiila 将已经下载好的文件上传到linux服务器。
      在这里插入图片描述
      将下面的文件拖到 /root 的相关目录下。
      在这里插入图片描述

    • 解压下载好的文件
      首先,下载相关的依赖文件: yum install glibc.i686 【前提得能上网】
      将java文件解压到相关目录下: tar -xvf jdk-7u22-linux-i586.gz -C /usr/local/java
      配置系统的环境变量:vim /etc/profile ,添加下面的内容

      #set java environment

       JAVA_HOME=/usr/local/java/jdk1.7.0_72
       CLASSPATH=.:$JAVA_HOME/lib.tools.jar
       
       PATH=$JAVA_HOME/bin:$PATH
       export JAVA_HOME CLASSPATH PATH
      

    然后wq保存退出。

    • 重新加载系统配置文件 resource /etc/profile
      输入java ,javac 出现相关介绍时,说明已经安装成功

      二:MySQL数据库的配置

    先查看有没有安装mysql
    rpm -qa | grep mysql
    删除
    rpm -e --nodeps mysql-libs-5.1.71-1.el6.i686

    • 创建mysql 存放路径 mkdir /usr/local/mysql

    • 将文件解压到相关目录 tar -xvf MySQL-5.6.22-1.el6.i686.rpm-bundle.tar -C /usr/locla/mysql

    • 安装依赖(可选):

      yum -y install libaio.so.1 libgcc_s.so.1 libstdc++.so.6
      yum update libstdc+±4.4.7-4.el6.x86_64

    • 切换到 解压的目录下,安装mysql的服务端:
      rpm -ivh MySQL-server-5.6.22-1.el6.i686.rpm

    • 安装mysql的客户端:
      rpm -ivh MySQL-client-5.6.22-1.el6.i686.rpm

    • 启动mysql的服务:
      service mysql status 查看MySQL是否已经启动
      service mysql start 启动mysql 服务

    • 由于安装时并没有 设置密码,所以初始化密码为空

    • 输入mysql -u root -p 回车 ,提示输入密码直接回车

    • 更改 mysql 密码:set password = password(‘123456’);

    • 设置开机自动启动mysql:
      加入到系统服务:
      chkconfig --add mysql
      自动启动:
      chkconfig mysql on

    • 开启远程服务:
      登录mysql授权可以远程访问:
      grant all privileges on . to ‘root’ @’%’ identified by ‘123456’;
      flush privileges;

    • 设置Linux的防火墙:
      3306端口放行 且将该设置添加到防火墙的规则中
      /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
      /etc/rc.d/init.d/iptables save

    三. 安装TOMCAT
    安装tomcat
    3.1 创建tomcat的安装路径:
    在 /usr/local 下mkdir tomcat
    3.2 将文件解压到相关目录
    tar –xvf xxx.tar.gz –C /usr/local/tomcat
    3.3 设置防火墙:
    /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
    /etc/rc.d/init.d/iptables save
    3.4 启动tomcat:
    进入到tomcat/bin
    执行 ./startup.sh
    关闭 tomcat
    执行 ./shutdown.sh

    四,部署项目war包到tomcat
    使用eclipse把bos web项目打包成war
    上传到linux的tomcat的webapps中
    导入windows的mysql数据和数据

    查看tomcat的进程id
    ps -ef | grep java
    杀死tomcat
    kill 3355

    此时,在linux 上部署web 项目就已经完成了~~~~~~~~~~~~~~~~~~~~~~~~

    展开全文
  •  明确下我们要做的微信公众号开发,服务器的环境我们使用java环境,框架为 springmvc+mybatis,说好的微信开发怎么变成了java环境了呢?  说了好多的废话,其实微信开发 java能做的事情很少,但是所做的事情是...

         没有开场白,直接步入正题,首先呢兄弟们听我白话一段大笑,这个表情。。。

         明确下我们要做的微信公众号开发,服务器的环境我们使用java环境,框架为 springmvc+mybatis,说好的微信开发怎么变成了java环境了呢?

        说了好多的废话,其实微信开发 java能做的事情很少,但是所做的事情是非常强大的,原因是我们在与微信做任何交易的时候都需要做验证,真的是一件很烦的事情,所以我选择了java 帮我去验证; 好在现在有好多第三方的开发工具也可以使用,而且帮我们省去了好多步骤,其实网上有好多有关微信开发的代码,我在查询了一番之后在这里整理下;

    进入正题首先准备一些事情;

    测试的公众号:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login


    获得appId 和appsecret 为配置微信服务端;


    配置接口信息, 稍后讲解;



    为了方便微信测试 :http://www.ngrok.cc/ 看下图文字叙述,没什么可说的,


    java web环境:下图采用的是 spring4MVC 、jdk1.8、 tomact8,使用的是maven管理工具;


    到此准备的差不多了; 下面开始配置微信环境;

    还得多说两句,微信开发主要就是通过微信的令牌获得微信的一些特权,为了达到这个效果,需要让微信知道我们的服务器, 我们服务器写一个微信接口供微信调用,同时响应微信发送的token验证,官方文档有介绍,不再赘述,上代码;

    @Controller  
    @RequestMapping("/test")
    public class WXAuthtokenController {
    
    	@RequestMapping(value="/wxToken", method = RequestMethod.GET, produces="application/json")
    	@ResponseBody
    	public String wxToken(HttpServletRequest request,ModelMap map,
    			@RequestParam(value="signature")String signature,
    			@RequestParam(value="timestamp")String timestamp,
    			@RequestParam(value="nonce")String nonce,
    			@RequestParam(value="echostr")String echostr){ 
    		System.out.println("请求成功");//因为测试,这里未做验证;
             
    	    return echostr;                                                   
    	}
    }
    至此,微信和我们的服务器,能沟通了偷笑,我们继续,,,

    由于我们启动时需要加载微信的accessToken,和JSAPI接口的飞机票,JSApiTicket,下面配置web.xml

    <servlet-name>InitAccessTokenServlet</servlet-name>  
        <servlet-class>com.oa.wx.utils.InitAccessTokenServlet</servlet-class>  
          
        <init-param>  
            <param-name>appid</param-name>  
            <param-value>wx4fb90asd5015e9820</param-value>  
        </init-param>  
        <init-param>  
            <param-name>appsecret</param-name>  
            <param-value>f7850725c4fff0423349c2a62e2d430</param-value>  
        </init-param>  
              
        <load-on-startup>2</load-on-startup>  
    </servlet>
      
    上面配置的目的就是当项目启动时加载 InitAccessTokenServlet 获取我们想要的信息;

    为了方便我们建立两个实体类用于获取参数 ,同时准备一些类供加载时调用:

    package com.oa.wx.utils;
    
    public class AccessToken implements java.io.Serializable {
    
    	/**
    	 * 
    	 */
    	private static final long serialVersionUID = 1L;
    	
    	// 接口访问凭证  
        private String accessToken;  
        // 凭证有效期,单位:秒  
        private int expiresIn;  
      
        public AccessToken() {  
      
        }  
      
        public String getAccessToken() {  
            return accessToken;  
        }  
      
        public void setAccessToken(String accessToken) {  
            this.accessToken = accessToken;  
        }  
      
        public int getExpiresIn() {  
            return expiresIn;  
        }  
      
        public void setExpiresIn(int expiresIn) {  
            this.expiresIn = expiresIn;  
        }  
    
    }
    
    package com.oa.wx.utils;
    
    public class JsApiTicket implements java.io.Serializable {
    
    	/**
    	 * 
    	 */
    	private static final long serialVersionUID = 1L;
    	
    	private String ticket;  
        // 凭证有效期,单位:秒  
        private int expiresIn;  
      
        public JsApiTicket() {  
      
        }  
      
        public String getTicket() {  
            return ticket;  
        }  
      
        public void setTicket(String ticket) {  
            this.ticket = ticket;  
        }  
      
        public int getExpiresIn() {  
            return expiresIn;  
        }  
      
        public void setExpiresIn(int expiresIn) {  
            this.expiresIn = expiresIn;  
        }  
    
    }
    编写获取accessToken 和飞机票的接口,在网上找了个例子,编写了个工具类如下、

    package com.oa.wx.utils;
    
    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.io.UnsupportedEncodingException;
    import java.net.URL;
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    import java.util.Arrays;
    import java.util.Formatter;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.UUID;
    
    import javax.net.ssl.HttpsURLConnection;
    import javax.net.ssl.SSLContext;
    import javax.net.ssl.SSLSocketFactory;
    import javax.net.ssl.TrustManager;
    
    import com.fasterxml.jackson.databind.JsonNode;
    import com.fasterxml.jackson.databind.ObjectMapper;  
    
    public class WeiXinUtil {
    
    	// 凭证获取(GET)——access_token  
        public final static String ACCESS_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";
        // 微信JSSDK的ticket请求URL地址——jsapi_ticket  
        public final static String JSAPI_TICKET_URL = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi";
        //微信APPID
        public final static String APP_ID="wx4fb9062502315e9820";
        //微信APPSECRET
        public final static String APPSECRET="19751e4ebd34c56e763f28b1a8c8263053";
        
    	/**  
         * 排序方法  
         *   
         * @param token  
         * @param timestamp  
         * @param nonce  
         * @return  
         */  
        public static String sort(String token, String timestamp, String nonce) {  
            String[] strArray = { token, timestamp, nonce };  
            Arrays.sort(strArray);  
      
            StringBuilder sbuilder = new StringBuilder();  
            for (String str : strArray) {  
                sbuilder.append(str);  
            }  
      
            return sbuilder.toString();  
        }
       
        /** 
         * 发送https请求 
         *  
         * @param requestUrl 
         *            请求地址 
         * @param requestMethod 
         *            请求方式(GET、POST) 
         * @param outputStr 
         *            提交的数据 
         * @return rootNode(通过rootNode.get(key)的方式获取json对象的属性值) 
         */  
        public static JsonNode httpsRequest(String requestUrl, String requestMethod, String outputStr) {  
            ObjectMapper mapper = new ObjectMapper();  
            JsonNode rootNode = null;  
            StringBuffer buffer = new StringBuffer();  
            try {  
                // 创建SSLContext对象,并使用我们指定的信任管理器初始化  
                TrustManager[] tm = { new MyX509TrustManager() };  
                SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");  
      
                sslContext.init(null, tm, new java.security.SecureRandom());  
                // 从上述SSLContext对象中得到SSLSocketFactory对象  
                SSLSocketFactory ssf = sslContext.getSocketFactory();  
      
                URL url = new URL(requestUrl);  
                HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();  
                conn.setSSLSocketFactory(ssf);  
      
                conn.setDoOutput(true);  
                conn.setDoInput(true);  
                conn.setUseCaches(false);  
                // 设置请求方式(GET/POST)  
                conn.setRequestMethod(requestMethod);  
                //conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");  
                if ("GET".equalsIgnoreCase(requestMethod))  
                    conn.connect();  
      
                // 当outputStr不为null时向输出流写数据  
                if (null != outputStr) {  
                    OutputStream outputStream = conn.getOutputStream();  
                    // 注意编码格式  
                    outputStream.write(outputStr.getBytes("UTF-8"));  
                    outputStream.close();  
                }  
      
                // 从输入流读取返回内容  
                InputStream inputStream = conn.getInputStream();  
                InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");  
                BufferedReader bufferedReader = new BufferedReader(inputStreamReader);  
                String str = null;  
                while ((str = bufferedReader.readLine()) != null) {  
                    buffer.append(str);  
                }  
      
                // 释放资源  
                bufferedReader.close();  
                inputStreamReader.close();  
                inputStream.close();  
                inputStream = null;  
                conn.disconnect();  
                rootNode = mapper.readTree(buffer.toString());  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
            return rootNode;  
        }  
        
        
        
        
        /** 
         * 获取接口访问凭证 
         *  
         * @param appid 
         *            凭证 
         * @param appsecret 
         *            密钥 
         * @return 
         */  
        public static AccessToken getAccessToken() {  
            AccessToken accessToken = null;  
            String requestUrl = ACCESS_TOKEN_URL.replace("APPID", APP_ID).replace("APPSECRET", APPSECRET);  
            // 发起GET请求获取凭证  
            JsonNode rootNode = httpsRequest(requestUrl, "GET", null);  
            System.out.println("rootNoderootNoderootNode"+rootNode);
            if (null != rootNode.get("access_token")) {  
                accessToken = new AccessToken();  
                accessToken.setAccessToken(rootNode.get("access_token").textValue());  
                accessToken.setExpiresIn(toInt(rootNode.get("expires_in").toString()));  
            }  
            return accessToken;  
        }
        
        
        /** 
         * 调用微信JS接口的临时票据 
         *  
         * @param access_token 
         *            接口访问凭证 
         * @return 
         */  
        public static JsApiTicket getJsApiTicket(String access_token) {  
            String requestUrl = JSAPI_TICKET_URL.replace("ACCESS_TOKEN", access_token);  
            // 发起GET请求获取凭证  
            JsonNode rootNode = httpsRequest(requestUrl, "GET", null);  
            System.out.println(rootNode.toString());
            JsApiTicket jsApiTicket = null;  
            if (null != rootNode.get("ticket")) {  
                jsApiTicket = new JsApiTicket();  
                jsApiTicket.setTicket(rootNode.get("ticket").textValue());  
                jsApiTicket.setExpiresIn(toInt(rootNode.get("expires_in").toString()));  
            }  
            return jsApiTicket;  
        }  
      
        public static Integer toInt(String str) {
            if (str == null || str.equals("")) {
                return null;
            }
            return Integer.valueOf(str);
        }
        
        /** 
         * 获取接口访问凭证 
         *  
         * @param appid 
         *            凭证 
         * @param appsecret 
         *            密钥 
         * @return 
         */  
        public static String getAuthorize(String url) {  
            AccessToken accessToken = null;  
            String requestUrl = ACCESS_TOKEN_URL.replace("APPID", APP_ID).replace("APPURL", url);  
            // 发起GET请求获取凭证  
            JsonNode rootNode = httpsRequest(requestUrl, "GET", null);  
            System.out.println(rootNode.toString());
            return rootNode.toString();
        }
        
        public static String create_nonce_str() {  
            return UUID.randomUUID().toString();  
        }  
      
        public static String create_timestamp() {  
            return Long.toString(System.currentTimeMillis() / 1000);  
        }
        
        public static String byteToHex(final byte[] hash) {  
            Formatter formatter = new Formatter();  
            for (byte b : hash) {  
                formatter.format("%02x", b);  
            }  
            String result = formatter.toString();  
            formatter.close();  
            return result;  
        }
        
        public static Map<String, String> sign(String jsapi_ticket, String url) {  
            Map<String, String> ret = new HashMap<String, String>();  
            String nonce_str = WeiXinUtil.create_nonce_str();  
            String timestamp = WeiXinUtil.create_timestamp();  
            String string1;  
            String signature = "";  
      
            // 注意这里参数名必须全部小写,且必须有序  
             string1 = "jsapi_ticket=" + jsapi_ticket +  
                     "&noncestr=" + nonce_str +  
                     "×tamp=" + timestamp +  
                     "&url=" + url;  
             System.out.println(string1);  
      
            try {  
                MessageDigest crypt = MessageDigest.getInstance("SHA-1");  
                crypt.reset();  
                crypt.update(string1.getBytes("UTF-8"));  
                signature = WeiXinUtil.byteToHex(crypt.digest());  
            } catch (NoSuchAlgorithmException e) {  
                e.printStackTrace();  
            } catch (UnsupportedEncodingException e) {  
                e.printStackTrace();  
            }  
      
            ret.put("url", url);  
            ret.put("appId",WeiXinUtil.APP_ID);  
            ret.put("jsapi_ticket", jsapi_ticket);  
            ret.put("nonceStr", nonce_str);  
            ret.put("timestamp", timestamp);  
            ret.put("signature", signature);  
      
            return ret;  
        }
    }
    由于微信的一些情况 accessToken 每天的获取数量是有限的,所以需要做缓存处理,在这里写了两个线程,一个是获取 accessToken ,一个是JsApiTicket;

    package com.oa.wx.utils;
    
    import javax.servlet.ServletContext;
    
    public class AccessTokenThread implements Runnable {
    
    	public static String appid = "";  
        public static String appsecret = "";  
        public static AccessToken accessToken = null; 
        
        @Override  
        public void run() {  
            while (true) {  
                try {  
                    accessToken = WeiXinUtil.getAccessToken();  
                    if (null != accessToken) {  
                        System.out.println("accessToken初始化成功:" + accessToken.getAccessToken());  
                        // 全局缓存access_token  
                        ServletContext servletContext = ServletContextUtil.getServletContext();  
                        servletContext.setAttribute("access_token", accessToken.getAccessToken());  
                        // 有效期(秒)减去200秒,乘以1000(毫秒)——也就是在有效期的200秒前去请求新的accessToken  
                        Thread.sleep((accessToken.getExpiresIn() - 200) * 1000);  
                    } else {  
                        // 等待一分钟,再次请求  
                        Thread.sleep(60 * 1000);  
                    }  
                } catch (Exception e) {  
                    try {  
                        // 等待一分钟,再次请求  
                        Thread.sleep(60 * 1000);  
                    } catch (Exception ex) {  
                        ex.printStackTrace();  
                    }  
                    e.printStackTrace();  
                }  
            }  
        }  
    
    }
    
    package com.oa.wx.utils;
    
    import javax.servlet.ServletContext;
    
    public class JsApiTicketThread implements Runnable {
    
    	@Override  
        public void run() {  
            while (true) {  
                try {  
                    ServletContext servletContext = ServletContextUtil.getServletContext();  
                    String access_token = (String) servletContext.getAttribute("access_token");  
                      
                    JsApiTicket jsApiTicket = null;  
                      
                    if(null != access_token && !"".equals(access_token)){  
                        // 获取jsapi_ticket  
                        jsApiTicket = WeiXinUtil.getJsApiTicket(access_token);  
                          
                        if (null != jsApiTicket) {  
                            System.out.println("jsapi_ticket获取成功:" + jsApiTicket.getTicket());  
                            // 全局缓存jsapi_ticket  
                            servletContext.setAttribute("jsapi_ticket", jsApiTicket.getTicket());  
                            Thread.sleep((jsApiTicket.getExpiresIn() - 200) * 1000);  
                        }  
                    }  
                    Thread.sleep(60 * 1000);  
                } catch (Exception e) {  
                    try {  
                        Thread.sleep(60 * 1000);  
                    } catch (Exception ex) {  
                        ex.printStackTrace();  
                    }  
                    e.printStackTrace();  
                }  
            }  
        }  
    
    }

    最后我们编写 InitAccessTokenServlet ,首次加载时调用;

    package com.oa.wx.utils;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    
    public class InitAccessTokenServlet extends HttpServlet {
    
    	/**
    	 * 
    	 */
    	private static final long serialVersionUID = 1L;
    	
    	public void init() throws ServletException {  
            // 获取web.xml中配置的参数  
            String WX_APPID ="wx4fb90625015e9820";
            String WX_APPSECRET = "19751e4ebdc56e763f28b1a8c8263053";
            AccessTokenThread.appid = WX_APPID;  
            AccessTokenThread.appsecret = WX_APPSECRET;  
      
            if ("".equals(AccessTokenThread.appid) || "".equals(AccessTokenThread.appsecret)) {  
                System.out.println("appid和appsecret未给出");  
            } else {  
                new Thread(new AccessTokenThread()).start();  
                new Thread(new JsApiTicketThread()).start();  
            }  
        }  
    
    }
    至此,微信服务端配置环境已结束,以上代码均在网上整理,为查阅方便整理到一起,如有侵权行为请与我联系。以上代码仅供参考,如遇问题可以留言!
    展开全文
  • 最近有不少网友呼吁不懂得怎么在百度云环境上部署微信平台,在这里写篇文章,希望对大家有所帮助 申请百度开发者账号 登录http://developer.baidu.com/bae ,使用邮箱或者手机注册一个账号,注册需要同时绑定...

    最近有不少网友呼吁不懂得怎么在百度云环境上部署微信平台,在这里写篇文章,希望对大家有所帮助


    申请百度开发者账号

    登录http://developer.baidu.com/bae ,使用邮箱或者手机注册一个账号,注册需要同时绑定手机并且验证邮箱。

     

    创建应用

    注册并登录成功以后,点击右上侧的,弹出如下窗口。

     

    应用名称自己随便填写一个,接入方式选择“手机web应用”,然后点击确定。

    说明:在以下的教程中,您可以将所有我填写为pondbay的地方改为你的一个相应的名称,如果您没有想好名称,最简单的方法就是qq这两个字符+qq号码,比如方倍工作室的QQ是1354386063,那么就将"pondbay"改为"qq1354386063"

     

    选择“云环境(BAE)”,


    在新的窗口中,填写应用域名的名称,环境类型选择JAVA,其他根据自己需要选择或者使用上图默认值,然后点击确定

    注意:此处填写的域名将要在下面填写URL时用到。可以先保存下来。 

    创建版本

     



    在版本管理中,点击创建新版本

    版本号填写0,然后保存。

    上传代码

    将工程导成war包,上传

    登陆微信平台

    微信平台地址https://mp.weixin.qq.com/

    进入开发者模式

    在url中填入你项目访问路径+/coreServlet,token随便写,但要和程序中util.SignUtil. token保持一致

    如:http://myproject.duapp.com/coreServlet

    ok!快去试试吧!


    展开全文
  • 第三步:配置环境变量 第四步:验证是否安装成功 目录 第一步:下载JDK安装包 1:查看下自己计算机的系统位数 2:下载JDK安装包 第二步:安装JDK 第三步:配置环境变量 第四步:验证是否安装成功 ...
  • JAVA柯尼塞克丶2019-05-08 11:05:10 概念 类加载器把class文件中的二进制数据读入到内存中,存放在方法区,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构...验证 :确保被加载的类的正...
  • 恕在下愚昧,实在想不懂那些都不验证帖子里技术的正确性就直接转载的那些人,心里是怎么想的!你要是感觉帖子好,请默默的收藏到你的收藏夹里,等你确定帖子内容没错的时候你再转载好不好?你不知道你这样做,对这个...
  • Java对象内存布局

    2021-03-15 21:11:55
    1 场景 此文主要分析: 在java中new Object()占用多少字节?在内存中的布局是怎么的? 基于版本:jdk1.8 2 内存布局图 jdk8中,Java对象的内存布局...验证环境: 64位操作系统+JDK1.8 3.1 maven依赖 <dependency>
  • 问题现象:遇到一个问题,就是配置JAVA_HOME无效,不管怎么改,运行java-version始终是最初的那个java版本。直接在PATH环境变量里追加写死的java路径也没用。解决过程:来到C:\WINDOWS\system32目录下进行验证。果然...
  • JAVA对象内存分配过程

    2021-03-15 21:12:46
    1 场景 此文主要分析: 在java中new Object()占用多少字节?在内存中的布局是怎么的? 基于版本:jdk1.8 2 内存布局图 jdk8中,Java对象的内存布局...验证环境: 64位操作系统+JDK1.8 3.1 maven依赖 <dependency>
  • 目录 写在前面 一、ArrayList并发不安全 二、集合类Set并发不安全 三、Map线程不安全 ... 很多小伙伴使用ArrayList、HashMap等...1.验证ArrayList并发不安全,以及解决方案 import java.util.*; import java.uti...
  • java面试宝典

    2013-02-28 16:04:01
    233、说出在JSP页面里是怎么分页的? 55 234、存储过程和函数的区别 55 235、事务是什么? 55 236、游标的作用?如何知道游标已经到了最后? 55 237、触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发...
  • 自学java(1)

    2016-07-22 20:23:57
    暑假无事可做。。。想来学一学java这就算是学习笔记了吧。(如果有看到这篇文章的java大神欢迎... 第一个代码,世界上使用频率最多的helloworld,验证结束我环境没错 public class hello {  public static void
  • Java gc 学习

    2008-12-02 15:50:10
    以前也看过一些,但是怎么找到测试的环境验证参数的改变带来的变化呢。有一点要说名的是jvm规范并未说明java gc采取什么样的策略,所以在各个jvm的实现也有所不同。在了解基本概念之前,其实我们可以想想,gc主要...
  • 也谈新郎、sohu新闻系统的技术,当然是怎么用jsp实现的 一份 tomcat vs resin 的测试报告 一个 Java,各自表述 一个applet---servlet通讯的例子 一个JDBC-ODBC桥的字符集参数的例子 一个进行Base64编码的类 ...
  • 在刚开始的第一章就详细地讲解了Java开发环境的搭建、反编译工具的使用、JDK文档资料的查阅,Java程序的编译、运行过程。在第二章中,全面地讲解Java的基本语法知识,对基本语法的讲解也不是泛泛而谈,而是在其中...
  • 如果配置好xml和servlet的java类,就可以访问了,那么具体我们是怎么访问并且执行servlet的呢? 干点大的:用户登录的身份验证 环境 到了这一步不需要任何的环境了 了解什么是servlet 我们来说说这个servlet是...
  • windows Android 开发环境

    2015-10-23 10:48:00
    步骤: 1)下载jdk,注意这是安装路径,不是目标路径,忘记了怎么看勒,安装路径的lib文件夹下面有个tools.jar 文件,这个也是等下需要的。 2) 在path 中添加;...4)验证Java 环境成果啦!命令提示行中输...
  • jdk 安装验证

    2014-06-09 11:19:41
    JDK 安装完成后怎么查看是否成功:   下载完成后,进行安装: 这是我的JDK的安装路径:D:\Program Files\Java\jdk1.6.0_25 这是jre的安装路径:D:\Program Files\Java\jre6 安装完成后对环境变量进行...
  • Java安全性编程实例 目 录 第1章运行环境设置 1 1.1 J2SE的安装和设置 1 1.1.1下载J2SE 1 1.1.2安装J2SE 1 ...本章介绍Java验证和授权服务(JAAS),可以方便地更换验证模块,并实现基于身份的授权。
  • xml java系统源码 jpassport 1.概述 jpassport是根据token机制实现的登录权限校验模块。经历了大型社交网络的生产...这里,基于Spring的Interceptor来拦截指定的需要权限验证的 Controller里的method,去校验userId +
  • 你是否渴望学习selenium webdriver + Java以及最新的框架和技术进行web自动化测试? 你是否感兴趣学习Selenium如何用在你现有的项目里的? 这门课带你从Selenium搭建环境开始讲起,然后学习selenium,TestNG, ...
  • 面试凉经极验验证

    2020-11-06 01:40:50
    公司整个环境很不错,总共2轮面试了,我用的是java面的,公司主技术都是用的python,面试官的人都挺好,有没答上来的都能提醒你,整个下来让人很舒适。个人总共2个项目一个redis的,一个SpringCloud架构的商城项目。...
  • 第一步 下载并配置 ...然后去配置maven的环境变量,具体怎么配置就不说了,因为之前都已经配置过了eclipse的环境变量,大同小异。 配置完成后,在终端输入mvn - v来验证是否配置成功 打开一个终端...
  • 有些https证书是我们自建的,没有经过ca机构验证的,比如我们的内部服务器环境,测试环境,在java中去请求这类https会报证书问题,有的人说直接在代码里写死直接信任所有https请求,我不建议这么处理,其实只需要两...
  • 那么怎么判断是否是正确的呢?我们这里来验证一下 1.在cmd中输入java 出现如下: 2.继续输入javac 出现: 如果这上面出现这两种情况证明已经配置好了,如果在输入javac的时候出现问题,一般就是path的环境配错了,...
  • 0.1 jvm是JAVA虚拟机,jre是java运行环境,jdk是java开发工具包。java开发工具包包含java运行环境java运行环境包含java虚拟机。像我们在服务器上部署java应用时只需要安装java运行环境就可以了,没必要装jdk。 0.2...

空空如也

空空如也

1 2 3 4 5
收藏数 94
精华内容 37
关键字:

怎么验证java环境

java 订阅