flowable 配置运行在 MySQL 数据库

flowable 下载下来后有五个war文件直接放到 Tomcat webapps 目录下即可使用,默认使用h2内存数据库,如果尝试更改配置文件使用MySQL会提示 com.mysql.jdbc.Driver 这个类不存在或找不到。

(更优解决方案请参考本文评论。)

解决方法是重新编译打包,步骤如下:

下载 flowable 源代码后,分别进去 flowable-app-rest , flowable-ui-modeler, flowable-ui-idm, flowable-ui-task 等目录使用

mvn -Pmysql package

命令进行编译打包,进入 flowalbe-ui-admin 目录使用

mvn -Pdev package

命令进行编译打包,将 war 放到 Tomcat webapps 目录下,启动Tomcat会自动解压得到同名目录,然后修改对应数据库配置即可。

Java编码问题-System.out.println输出中文乱码

想学一学Java。拿出雍俊海老师的《Java程序设计教程》,将第一个例程代码敲上去:

//J_HelloJava.java
public class J_HelloJava {
	public static void main(String args[]) {
		System.out.println("Java语言,您好!");
		System.out.println("我将成为优秀的Java程序员!");
	}
}

编译:

javac J_HelloJava.java

运行:

java J_HelloJava

结果出来一堆乱码,上网搜索找到原因,我的J_HelloJava.java文件保存的时候是用UTF-8编码保存的,而javac编译的时候是以电脑系统编码(GBK,我是win 7系统)来处理的,搞清楚这点后,就不难处理了。针对上述问题,有两种解决方法:

1、将 J_HelloJava.java 以 GBK 编码方式存储,然后再编译、运行。

2、编译时指定编码为UTF-8,编译命令:

javac -encoding utf-8 J_HelloJava.java

推荐一篇文章,讲Java编码问题的,我就是看这篇文章解决问题的。我没认真看,粗略地看了一下,解决了我目前的这个问题。

地址:http://www.cnblogs.com/cy163/archive/2008/08/13/1267433.html

(原博客发布时间:2012-01-03 20:25:15)

Java学习笔记-接口

1、任何子类只能有一个直接父类,但允许一个类实现多个接口;

2、接口的所有成员域都具有public、static、和final属性:例如在接口体内部定义

double PI = 3.14159265358979323846;

或者

public static final double PI = 3.14159265358979323846;

上面两个成员域的定义是等价的。它们都具有public、static、和final属性;

3、接口的所有成员方法都具有public和abstract属性;

总结:我怎么感觉接口就是一种特殊的类啊?我是这么理解的。

(原博客发布时间:2012-01-04 15:24:21)

八皇后问题,通过回溯,用Java实现

八皇后问题是:在八行八列的格子上放8个皇后(棋子),使得任意两个皇后都攻击不到对方,即使得他们都不在同一行同一列和同一斜线上。

记得以前学C语言的时候,就见过这个问题,但当时怎么都弄不懂。现在看Java的书,书上课后练习有这个题目,就上网搜了一下怎么做,现在终于差不多懂了。代码和注释如下:

public class BackTrackQueen {

	private int[] s; // 记录皇后放置情况,s[i] = w表示皇后放在第i行的第w列(从下标0开始计数)
	private int m_queenNum; // 皇后个数
	private int m_solution; // 解的个数

	public BackTrackQueen(int queenNum) {
		m_solution = 0;
		m_queenNum = queenNum;
		s = new int[queenNum];
		for (int i = 0; i < queenNum; i++) {
			s[i] = -1;
		}
	}

	/**
	 * printThis()输出解,即打印皇后的放置情况
	 */
	public void printThis() {
		System.out.println("第" + m_solution + "种解法:");
		for (int i = 0; i < m_queenNum; i++)
			System.out.println("第" + (i + 1) + "行的第" + (s[i] + 1) + "列");
	}

	/**
	 * check()判断是否满足条件; 注意,因为每个s[i]只能等于一个值,也就限定了每行只有一个皇后,
	 * 所以,不用再判断同一行是否有2个皇后。
	 * 
	 * @param n
	 * @return boolean
	 */
	public boolean check(int n) {
		for (int i = 0; i < n; i++) {
			if (s[i] == s[n]) // 判断是否存在2个皇后在同一列
				return false;
			if (Math.abs(s[n] - s[i]) == n - i)// 判断是否存在2个皇后在同一斜线上
				return false;
		}
		return true;
	}

	/**
	 * queen()核心函数,实现把所有的满足题义的情况列出来
	 * 
	 * @param n
	 */
	public void queen(int n) {
		if (m_queenNum == n) {// 如果所有皇后都放置完毕,则输出当前解
			m_solution++;
			printThis();
			return;
		} else {
			for (int i = 0; i < m_queenNum; i++) {
				s[n] = i; // 将第n个皇后放在第n行的i列,如果满足check(n)为真,则继续放置下一个皇后
				if (check(n)) // 否则i++,继续(从下标0计数,这里的第n个,其实是现实中的第n+1个)
					queen(n + 1);
			}
		}
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		BackTrackQueen btq = new BackTrackQueen(8);//声明类的时候给定皇后个数为8,8皇后问题,也可以是N皇后问题
		btq.queen(0);
	}

}

 

参考文章:http://blog.csdn.net/lixiaoshan_18899/article/details/1286716

(原博客发布时间:2012-01-06 13:39:10)