一直在项目中用百度的popup.js,挺好用兼容性不错
有关详细介绍:http://bbs.80nian.net/thread-428-1-1.html
使用中自己也试着修改了些源码 以适应实际需要
1、在弹出层的时候popup.js隐藏了父页面中所有的select选择框,当然这是必要的,但项目中用到了日期选择框js,如果他们两个一块用,呵呵,就开始打架了,现象是 当关闭popup弹出框后会发现页面上有年份和月的select下拉框,我看到是在左上角
分析popup.js,修改了源码,在popup.js隐藏select的时候,判断如果id为日期选择框中的id名字就不做操作,OK!
2、关闭按钮图标问题,popup.js写死从www.baidu.com中取关闭按钮图片,总不能用着人家js还要用人家图片 呵呵,索性换成了个全角 的X 哈哈
3、遇到一个新需求,就是想在关闭popup的时候,做一些判断处理,看来要对刚刚那个X动手脚了,在config中加了个属性showCloseButton,如果showCloseButton=true显示X,否则不显示X,然后自己在页面中加一个button处理关闭事件,这样自己想做什么就做什么了,哈哈
2009年6月16日星期二
2009年6月11日星期四
用 Quartz 进行作业调度 续
如果不使用数据库存储,则配置文件变得很简单:
org.quartz.scheduler.instanceName = TestScheduler
org.quartz.scheduler.instanceId = one
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 2
org.quartz.threadPool.threadPriority = 4
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileName = quartz_job.xml
转载:http://www.blogjava.net/xmatthew/archive/2009/02/15/253864.html
CronTrigger配置格式:
格式: [秒] [分] [小时] [日] [月] [周] [年]
序号 说明 是否必填 允许填写的值 允许的通配符 1 秒 是 0-59 , - * / 2 分 是 0-59 , - * / 3 小时 是 0-23 , - * / 4 日 是 1-31 , - * ? / L W 5 月 是 1-12 or JAN-DEC , - * / 6 周 是 1-7 or SUN-SAT , - * ? / L # 7 年 否 empty 或 1970-2099 , - * /
通配符说明:
* 表示所有值. 例如:在分的字段上设置 "*",表示每一分钟都会触发。
? 表示不指定值。使用的场景为不需要关心当前设置这个字段的值。例如:要在每月的10号触发一个操作,但不关心是周几,所以需要周位置的那个字段设置为"?" 具体设置为 0 0 0 10 * ?
- 表示区间。例如 在小时上设置 "10-12",表示 10,11,12点都会触发。
, 表示指定多个值,例如在周字段上设置 "MON,WED,FRI" 表示周一,周三和周五触发
/ 用于递增触发。如在秒上面设置"5/15" 表示从5秒开始,每增15秒触发(5,20,35,50)。 在月字段上设置'1/3'所示每月1号开始,每隔三天触发一次。
L 表示最后的意思。在日字段设置上,表示当月的最后一天(依据当前月份,如果是二月还会依据是否是润年[leap]), 在周字段上表示星期六,相当于"7"或"SAT"。如果在"L"前加上数字,则表示该数据的最后一个。例如在周字段上设置"6L"这样的格式,则表示“本月最后一个星期五"
W 表示离指定日期的最近那个工作日(周一至周五). 例如在日字段上设置"15W",表示离每月15号最近的那个工作日触发。如果15号正好是周六,则找最近的周五(14号)触发, 如果15号是周未,则找最近的下周一(16号)触发.如果15号正好在工作日(周一至周五),则就在该天触发。如果指定格式为 "1W",它则表示每月1号往后最近的工作日触发。如果1号正是周六,则将在3号下周一触发。(注,"W"前只能设置具体的数字,不允许区间"-").
小提示 小提示
常用示例:
0 0 12 * * ? 每天12点触发 0 15 10 ? * * 每天10点15分触发 0 15 10 * * ? 每天10点15分触发 0 15 10 * * ? * 每天10点15分触发 0 15 10 * * ? 2005 2005年每天10点15分触发 0 * 14 * * ? 每天下午的 2点到2点59分每分触发 0 0/5 14 * * ? 每天下午的 2点到2点59分(整点开始,每隔5分触发) 0 0/5 14,18 * * ? 每天下午的 2点到2点59分(整点开始,每隔5分触发)
每天下午的 18点到18点59分(整点开始,每隔5分触发) 0 0-5 14 * * ? 每天下午的 2点到2点05分每分触发 0 10,44 14 ? 3 WED 3月分每周三下午的 2点10分和2点44分触发 0 15 10 ? * MON-FRI 从周一到周五每天上午的10点15分触发 0 15 10 15 * ? 每月15号上午10点15分触发 0 15 10 L * ? 每月最后一天的10点15分触发 0 15 10 ? * 6L 每月最后一周的星期五的10点15分触发 0 15 10 ? * 6L 2002-2005 从2002年到2005年每月最后一周的星期五的10点15分触发 0 15 10 ? * 6#3 每月的第三周的星期五开始触发 0 0 12 1/5 * ? 每月的第一个中午开始每隔5天触发一次 0 11 11 11 11 ? 每年的11月11号 11点11分触发(光棍节)
除了使用xml配置job,还可以使用java代码建立job
public static void main(String[] args){
try {
// Initiate a Schedule Factory
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
// Retrieve a scheduler from schedule factory
Scheduler scheduler = schedulerFactory.getScheduler();
// current time
long ctime = System.currentTimeMillis();
// Initiate JobDetail with job name, job group, and executable job class
JobDetail jobDetail =
new JobDetail("jobDetail22", "jobDetailGroup22", SimpleJob.class);
// Initiate CronTrigger with its name and group name
CronTrigger cronTrigger = new CronTrigger("cronTrigger2", "triggerGroup22");
// setup CronExpression
CronExpression cexp = new CronExpression("0/5 * * * * ?");
// Assign the CronExpression to CronTrigger
cronTrigger.setCronExpression(cexp);
// schedule a job with JobDetail and Trigger
scheduler.scheduleJob(jobDetail, cronTrigger);
// start the scheduler
scheduler.start();
} catch (Exception e) {
e.printStackTrace();
}
}
参考资料:
http://www.blogjava.net/xmatthew/archive/2009/02/15/253864.html
http://www.ibm.com/developerworks/cn/java/j-quartz/index.html
http://www.blogjava.net/steady/archive/2007/08/02/134017.html
org.quartz.scheduler.instanceName = TestScheduler
org.quartz.scheduler.instanceId = one
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 2
org.quartz.threadPool.threadPriority = 4
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileName = quartz_job.xml
转载:http://www.blogjava.net/xmatthew/archive/2009/02/15/253864.html
CronTrigger配置格式:
格式: [秒] [分] [小时] [日] [月] [周] [年]
序号 说明 是否必填 允许填写的值 允许的通配符 1 秒 是 0-59 , - * / 2 分 是 0-59 , - * / 3 小时 是 0-23 , - * / 4 日 是 1-31 , - * ? / L W 5 月 是 1-12 or JAN-DEC , - * / 6 周 是 1-7 or SUN-SAT , - * ? / L # 7 年 否 empty 或 1970-2099 , - * /
通配符说明:
* 表示所有值. 例如:在分的字段上设置 "*",表示每一分钟都会触发。
? 表示不指定值。使用的场景为不需要关心当前设置这个字段的值。例如:要在每月的10号触发一个操作,但不关心是周几,所以需要周位置的那个字段设置为"?" 具体设置为 0 0 0 10 * ?
- 表示区间。例如 在小时上设置 "10-12",表示 10,11,12点都会触发。
, 表示指定多个值,例如在周字段上设置 "MON,WED,FRI" 表示周一,周三和周五触发
/ 用于递增触发。如在秒上面设置"5/15" 表示从5秒开始,每增15秒触发(5,20,35,50)。 在月字段上设置'1/3'所示每月1号开始,每隔三天触发一次。
L 表示最后的意思。在日字段设置上,表示当月的最后一天(依据当前月份,如果是二月还会依据是否是润年[leap]), 在周字段上表示星期六,相当于"7"或"SAT"。如果在"L"前加上数字,则表示该数据的最后一个。例如在周字段上设置"6L"这样的格式,则表示“本月最后一个星期五"
W 表示离指定日期的最近那个工作日(周一至周五). 例如在日字段上设置"15W",表示离每月15号最近的那个工作日触发。如果15号正好是周六,则找最近的周五(14号)触发, 如果15号是周未,则找最近的下周一(16号)触发.如果15号正好在工作日(周一至周五),则就在该天触发。如果指定格式为 "1W",它则表示每月1号往后最近的工作日触发。如果1号正是周六,则将在3号下周一触发。(注,"W"前只能设置具体的数字,不允许区间"-").
'L'和 'W'可以一组合使用。如果在日字段上设置"LW",则表示在本月的最后一个工作日触发(一般指发工资 )
周字段的设置,若使用英文字母是不区分大小写的 MON 与mon相同.
常用示例:
0 0 12 * * ? 每天12点触发 0 15 10 ? * * 每天10点15分触发 0 15 10 * * ? 每天10点15分触发 0 15 10 * * ? * 每天10点15分触发 0 15 10 * * ? 2005 2005年每天10点15分触发 0 * 14 * * ? 每天下午的 2点到2点59分每分触发 0 0/5 14 * * ? 每天下午的 2点到2点59分(整点开始,每隔5分触发) 0 0/5 14,18 * * ? 每天下午的 2点到2点59分(整点开始,每隔5分触发)
每天下午的 18点到18点59分(整点开始,每隔5分触发) 0 0-5 14 * * ? 每天下午的 2点到2点05分每分触发 0 10,44 14 ? 3 WED 3月分每周三下午的 2点10分和2点44分触发 0 15 10 ? * MON-FRI 从周一到周五每天上午的10点15分触发 0 15 10 15 * ? 每月15号上午10点15分触发 0 15 10 L * ? 每月最后一天的10点15分触发 0 15 10 ? * 6L 每月最后一周的星期五的10点15分触发 0 15 10 ? * 6L 2002-2005 从2002年到2005年每月最后一周的星期五的10点15分触发 0 15 10 ? * 6#3 每月的第三周的星期五开始触发 0 0 12 1/5 * ? 每月的第一个中午开始每隔5天触发一次 0 11 11 11 11 ? 每年的11月11号 11点11分触发(光棍节)
除了使用xml配置job,还可以使用java代码建立job
public static void main(String[] args){
try {
// Initiate a Schedule Factory
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
// Retrieve a scheduler from schedule factory
Scheduler scheduler = schedulerFactory.getScheduler();
// current time
long ctime = System.currentTimeMillis();
// Initiate JobDetail with job name, job group, and executable job class
JobDetail jobDetail =
new JobDetail("jobDetail22", "jobDetailGroup22", SimpleJob.class);
// Initiate CronTrigger with its name and group name
CronTrigger cronTrigger = new CronTrigger("cronTrigger2", "triggerGroup22");
// setup CronExpression
CronExpression cexp = new CronExpression("0/5 * * * * ?");
// Assign the CronExpression to CronTrigger
cronTrigger.setCronExpression(cexp);
// schedule a job with JobDetail and Trigger
scheduler.scheduleJob(jobDetail, cronTrigger);
// start the scheduler
scheduler.start();
} catch (Exception e) {
e.printStackTrace();
}
}
参考资料:
http://www.blogjava.net/xmatthew/archive/2009/02/15/253864.html
http://www.ibm.com/developerworks/cn/java/j-quartz/index.html
http://www.blogjava.net/steady/archive/2007/08/02/134017.html
用 Quartz 进行作业调度
Quartz 是个开源的作业调度框架,
为在 Java 应用程序中进行作业调度提供了简单却强大的机制。
Quartz 允许开发人员根据时间间隔(或天)来调度作业。
它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。
整合了 Quartz 的应用程序可以重用来自不同事件的作业,
还可以为一个事件组合多个作业。
1. 下载 Quartz API。
2. 新建web项目
3. 解压缩并把 quartz-x.x.x.jar、core 和/或 optional 文件夹中的 jar 文件和optional 文件夹中的 jar 文件 放在项目lib文件夹内。如果使用 JDBCJobStore,把所有的 JDBC jar 文件放在项目的lib文件夹。
4. 新建java类作为一个job,必须实现org.quartz.Job接口
public class SimpleJob implements Job {
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("In SimpleQuartzJob - executing its JOB at "
+ new Date() + " by " + context.getTrigger().getName());
}
}
5. 在src下新建quartz_job.xml,<cron-expression>0/2 * * * * ?</cron-expression>配置从0秒开始每两秒执行一次
<?xml version="1.0" encoding="UTF-8"?>
<quartz>
<job>
<job-detail>
<name>job1</name>
<group>job</group>
<job-class>com.capinfo.job.SimpleJob</job-class>
</job-detail>
<trigger>
<cron>
<name>t1</name>
<group>job</group>
<job-name>job1</job-name>
<job-group>job</job-group>
<cron-expression>0/2 * * * * ?</cron-expression>
</cron>
</trigger>
</job>
</quartz>
6. 在web.xml中加入:
<servlet>
<servlet-name>quartz</servlet-name>
<servlet-class>
org.quartz.ee.servlet.QuartzInitializerServlet
</servlet-class>
<init-param>
<param-name>config-file</param-name>
<param-value>/quartz.properties</param-value>
</init-param>
<init-param>
<param-name>shutdown-on-unload</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
7. 在src下新建quartz.properties
#########################################################################
#============================================================================
# Configure Main Scheduler Properties
#============================================================================
org.quartz.scheduler.instanceName = TestScheduler
org.quartz.scheduler.instanceId = i_one
#============================================================================
# Configure ThreadPool
#============================================================================
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 5
org.quartz.threadPool.threadPriority = 5
#============================================================================
# Configure JobStore
#============================================================================
#org.quartz.jobStore.misfireThreshold = 60000
org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.MSSQLDelegate
#org.quartz.jobStore.useProperties=false
org.quartz.jobStore.dataSource=myDS
#org.quartz.jobStore.tablePrefix=QRTZ_
#org.quartz.jobStore.isClustered=true
#============================================================================
# Other Example Delegates
#============================================================================
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.CloudscapeDelegate
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.DB2v6Delegate
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.DB2v7Delegate
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.DriverDelegate
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.HSQLDBDelegate
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.MSSQLDelegate
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PointbaseDelegate
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.WebLogicDelegate
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.oracle.WebLogicOracleDelegate
#============================================================================
# Configure Datasources
#============================================================================
org.quartz.dataSource.myDS.driver = com.microsoft.sqlserver.jdbc.SQLServerDriver
org.quartz.dataSource.myDS.URL = jdbc:sqlserver://localhost:1433;;DatabaseName=quartzdb;autoReconnect=true
org.quartz.dataSource.myDS.user = sa
org.quartz.dataSource.myDS.password = 123456
org.quartz.dataSource.myDS.maxConnections = 5
org.quartz.dataSource.myDS.validationQuery=
#============================================================================
# Configure Plugins
#============================================================================
org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingJobHistoryPlugin
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileName = quartz_job.xml
org.quartz.plugin.jobInitializer.overWriteExistingJobs = true
org.quartz.plugin.jobInitializer.failOnFileNotFound = true
org.quartz.plugin.jobInitializer.scanInterval = 10
org.quartz.plugin.jobInitializer.wrapInUserTransaction = false
#org.quartz.plugin.shutdownHook.class = org.quartz.plugins.management.ShutdownHookPlugin
#org.quartz.plugin.shutdownHook.cleanShutdown = true
#org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingJobHistoryPlugin
8. 初始化数据库表,在\quartz-1.6.5\docs\dbTables中有sql脚本
9. OK,部署,运行
为在 Java 应用程序中进行作业调度提供了简单却强大的机制。
Quartz 允许开发人员根据时间间隔(或天)来调度作业。
它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。
整合了 Quartz 的应用程序可以重用来自不同事件的作业,
还可以为一个事件组合多个作业。
1. 下载 Quartz API。
2. 新建web项目
3. 解压缩并把 quartz-x.x.x.jar、core 和/或 optional 文件夹中的 jar 文件和optional 文件夹中的 jar 文件 放在项目lib文件夹内。如果使用 JDBCJobStore,把所有的 JDBC jar 文件放在项目的lib文件夹。
4. 新建java类作为一个job,必须实现org.quartz.Job接口
public class SimpleJob implements Job {
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("In SimpleQuartzJob - executing its JOB at "
+ new Date() + " by " + context.getTrigger().getName());
}
}
5. 在src下新建quartz_job.xml,<cron-expression>0/2 * * * * ?</cron-expression>配置从0秒开始每两秒执行一次
<?xml version="1.0" encoding="UTF-8"?>
<quartz>
<job>
<job-detail>
<name>job1</name>
<group>job</group>
<job-class>com.capinfo.job.SimpleJob</job-class>
</job-detail>
<trigger>
<cron>
<name>t1</name>
<group>job</group>
<job-name>job1</job-name>
<job-group>job</job-group>
<cron-expression>0/2 * * * * ?</cron-expression>
</cron>
</trigger>
</job>
</quartz>
6. 在web.xml中加入:
<servlet>
<servlet-name>quartz</servlet-name>
<servlet-class>
org.quartz.ee.servlet.QuartzInitializerServlet
</servlet-class>
<init-param>
<param-name>config-file</param-name>
<param-value>/quartz.properties</param-value>
</init-param>
<init-param>
<param-name>shutdown-on-unload</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
7. 在src下新建quartz.properties
#########################################################################
#============================================================================
# Configure Main Scheduler Properties
#============================================================================
org.quartz.scheduler.instanceName = TestScheduler
org.quartz.scheduler.instanceId = i_one
#============================================================================
# Configure ThreadPool
#============================================================================
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 5
org.quartz.threadPool.threadPriority = 5
#============================================================================
# Configure JobStore
#============================================================================
#org.quartz.jobStore.misfireThreshold = 60000
org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.MSSQLDelegate
#org.quartz.jobStore.useProperties=false
org.quartz.jobStore.dataSource=myDS
#org.quartz.jobStore.tablePrefix=QRTZ_
#org.quartz.jobStore.isClustered=true
#============================================================================
# Other Example Delegates
#============================================================================
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.CloudscapeDelegate
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.DB2v6Delegate
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.DB2v7Delegate
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.DriverDelegate
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.HSQLDBDelegate
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.MSSQLDelegate
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PointbaseDelegate
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.WebLogicDelegate
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.oracle.WebLogicOracleDelegate
#============================================================================
# Configure Datasources
#============================================================================
org.quartz.dataSource.myDS.driver = com.microsoft.sqlserver.jdbc.SQLServerDriver
org.quartz.dataSource.myDS.URL = jdbc:sqlserver://localhost:1433;;DatabaseName=quartzdb;autoReconnect=true
org.quartz.dataSource.myDS.user = sa
org.quartz.dataSource.myDS.password = 123456
org.quartz.dataSource.myDS.maxConnections = 5
org.quartz.dataSource.myDS.validationQuery=
#============================================================================
# Configure Plugins
#============================================================================
org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingJobHistoryPlugin
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileName = quartz_job.xml
org.quartz.plugin.jobInitializer.overWriteExistingJobs = true
org.quartz.plugin.jobInitializer.failOnFileNotFound = true
org.quartz.plugin.jobInitializer.scanInterval = 10
org.quartz.plugin.jobInitializer.wrapInUserTransaction = false
#org.quartz.plugin.shutdownHook.class = org.quartz.plugins.management.ShutdownHookPlugin
#org.quartz.plugin.shutdownHook.cleanShutdown = true
#org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingJobHistoryPlugin
8. 初始化数据库表,在\quartz-1.6.5\docs\dbTables中有sql脚本
9. OK,部署,运行
2009年6月10日星期三
jdbc连接sql server 2000和连接sql server 2005写法不同
在sql server 2000 中加载驱动和URL路径的语句是
String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String dbURL = "jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=sample";
而sql server 2005 中加载驱动和url的语句则为
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=sample";
SQL Server 2005 driver for JDBC 参考:http://www.bccn.net/Article/kfyy/java/jszl/200706/4588.html
String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String dbURL = "jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=sample";
而sql server 2005 中加载驱动和url的语句则为
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=sample";
SQL Server 2005 driver for JDBC 参考:http://www.bccn.net/Article/kfyy/java/jszl/200706/4588.html
2009年6月9日星期二
2009年6月3日星期三
发现谷歌浏览器不能加载yahoo邮箱
2009年6月2日星期二
找到一个访问blogger的方法
建一个文本文件,命名为proxy.pac
用文本编辑器打开 输入:
function FindProxyForURL(url,host){ if(dnsDomainIs(host, ".blogspot.com")){ return "PROXY google.cn:80"; } }
保存后,在FireFox-工具-选项-高级-网络选项卡-设置-选自动代理配置URL ,在文本框中输入file:///C:/proxy.pac
OK,可以访问blogger了。
别的代理
https://soproxy.appspot.com/
http://proxy-12345.appspot.com/
六一儿童节我变身房奴了
貌似已经跟我没啥关系的六一儿童节,忙活了一天,签字画押,我勇敢的加入房奴大军了...
一下子从小康生活回归到了解放前,呜呜~~~~(>_<)~~~~
拿着一大堆票据、一大把钥匙回到家倒头便睡,累死了
预祝房奴生活开开心心。
一下子从小康生活回归到了解放前,呜呜~~~~(>_<)~~~~
拿着一大堆票据、一大把钥匙回到家倒头便睡,累死了
预祝房奴生活开开心心。
2009年5月27日星期三
又开始捣鼓roller
想参考一下roller的设计思路,遂又捡起roller,刚开始是看roller4.0,磨叽了半天时间,因为对struts2不熟悉,转而搞了个roller3.0,还好都运行起来了,之中发现下载的源码竟然不全,如果不引用roller的jar包的话会报错,缺几个package里的类,累的我还要反编译,不知道我是走弯路了还是怎么着,总算运行起来了,改了log4j的配置让日志在控制台输出,昨晚下班刚弄到这儿,接着捣鼓
我的blog 3年游荡记
突然想起来写blog也好长时间了,可以追溯到3年前,一开始是在msn space,后来搬家到baidu,那时候对baidu还是很支持的,后来感觉baidu进步有点慢啊,完了还出来一些绯闻
接着就有些不安分了,到处搬家哈哈,csdn、javaeye、博客大巴、yo2、blogjava、blogger,哦天,真的不少,现在csdn、javaeye、博客大巴、yo2已经荒了,blogger这几天还被和谐了很郁闷,就剩blogjava和baidu了,现在在捣鼓在GAE上弄个java写的blog,已经糊弄上去了,凑合能添加文章,一有空就修改一下代码往上面更新一下,现在在研究怎么静态化和上传图片
接着就有些不安分了,到处搬家哈哈,csdn、javaeye、博客大巴、yo2、blogjava、blogger,哦天,真的不少,现在csdn、javaeye、博客大巴、yo2已经荒了,blogger这几天还被和谐了很郁闷,就剩blogjava和baidu了,现在在捣鼓在GAE上弄个java写的blog,已经糊弄上去了,凑合能添加文章,一有空就修改一下代码往上面更新一下,现在在研究怎么静态化和上传图片
2009年5月21日星期四
2009年5月20日星期三
C# 由DataGridView导出到Excel
C#语言: 由dataGridView导出到Excelprivate void buttonToExcel_Click(object sender, EventArgs e)
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Execl files (*.xls)|*.xls";
saveFileDialog.FilterIndex = 0;
saveFileDialog.RestoreDirectory = true;
saveFileDialog.CreatePrompt = true;
saveFileDialog.Title = "Export Excel File To";
saveFileDialog.ShowDialog();
Stream myStream;
myStream = saveFileDialog.OpenFile();
StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding(-0));
string str = "";
try
{
//写标题
for (int i = 0; i < this.dataGridView3.ColumnCount; i++)
{
if (i > 0)
{
str += "\t";
}
str += this.dataGridView3.Columns[i].HeaderText;
}
sw.WriteLine(str);
//写内容
for (int j = 0; j < this.dataGridView3.Rows.Count; j++)
{
string tempStr = "";
for (int k = 0; k < this.dataGridView3.Columns.Count; k++)
{
if (k > 0)
{
tempStr += "\t";
}
tempStr += this.dataGridView3.Rows[j].Cells[k].Value + "";
}
sw.WriteLine(tempStr);
}
sw.Close();
myStream.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
sw.Close();
myStream.Close();
}
MessageBox.Show("OK");
}
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Execl files (*.xls)|*.xls";
saveFileDialog.FilterIndex = 0;
saveFileDialog.RestoreDirectory = true;
saveFileDialog.CreatePrompt = true;
saveFileDialog.Title = "Export Excel File To";
saveFileDialog.ShowDialog();
Stream myStream;
myStream = saveFileDialog.OpenFile();
StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding(-0));
string str = "";
try
{
//写标题
for (int i = 0; i < this.dataGridView3.ColumnCount; i++)
{
if (i > 0)
{
str += "\t";
}
str += this.dataGridView3.Columns[i].HeaderText;
}
sw.WriteLine(str);
//写内容
for (int j = 0; j < this.dataGridView3.Rows.Count; j++)
{
string tempStr = "";
for (int k = 0; k < this.dataGridView3.Columns.Count; k++)
{
if (k > 0)
{
tempStr += "\t";
}
tempStr += this.dataGridView3.Rows[j].Cells[k].Value + "";
}
sw.WriteLine(tempStr);
}
sw.Close();
myStream.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
sw.Close();
myStream.Close();
}
MessageBox.Show("OK");
}
Visual Studio 2010和.NET 4.0 Beta 1发布
今早看到一则新闻:出处http://www.infoq.com/cn/news/2009/05/vs2010-beta1
昨日,Soma在其博客上宣布Visual Studio 2010和.NET 4.0的Beta 1已经可以通过MSDN订阅下载了。 过去的几个月里,我们已经初步了解了Visual Studio 2010和.NET 4.0的一系列新特性。和上次发布的CTP版本不同,这次的Beta 1是以安装包形式发布的,而非VPC镜像。这样我们就可以自己下载安装,一睹为快了,不过大家最好还是安装到虚拟机中。 在Visual Studio 2010的产品站点上,我们可以了解到VS 2010给我们带来的革新:
我开始接触.net是Visual Studio 2003和.net1.1,不由感叹技术更新之快,之后微软出了很多新名词:WPF、WCF、Silverlight、Linq等等,真是抓瞎了,学不过来,现在都2010了
昨日,Soma在其博客上宣布Visual Studio 2010和.NET 4.0的Beta 1已经可以通过MSDN订阅下载了。 过去的几个月里,我们已经初步了解了Visual Studio 2010和.NET 4.0的一系列新特性。和上次发布的CTP版本不同,这次的Beta 1是以安装包形式发布的,而非VPC镜像。这样我们就可以自己下载安装,一睹为快了,不过大家最好还是安装到虚拟机中。 在Visual Studio 2010的产品站点上,我们可以了解到VS 2010给我们带来的革新:
- 加强的用户体验:VS2010带来了新用户界面,让工作更专注。
- 便捷的SharePoint开发:对SharePoint开发更完善的支持,让SharePoint开发不再痛苦。
- 应用程序生命周期管理(ALM):把项目角色更紧密地集成到整个应用程序生命周期中。
- 更佳的Web应用开发:对JavaScript的加强,Silverlight开发的完整支持,更容易部署。
- 云应用程序开发:集成Azure开发包,无缝进行云应用程序的开发。
- 数据库支持:对IBM DB2和Oracle更好的支持。
- 并行编程:从运行时到IDE都对并行编程提供了很好的支持。
- 更高的生产力:代码上下文可帮助理解现存代码,对C++开发体验的提升,Windows 7的支持,Office开发支持的加强。
我开始接触.net是Visual Studio 2003和.net1.1,不由感叹技术更新之快,之后微软出了很多新名词:WPF、WCF、Silverlight、Linq等等,真是抓瞎了,学不过来,现在都2010了
2009年4月24日星期五
javascript 缺少对象
经常遇到javascript 缺少对象的错误,无外乎调用的js方法未定义,名字写错了,之类,今儿遇到的郁闷的
我在页面中加了一个注释 <!-- -- >,注意结束标签--和>之间有个空格,结果未起作用,结果可想而知,找了半天才找到
我在页面中加了一个注释 <!-- -- >,注意结束标签--和>之间有个空格,结果未起作用,结果可想而知,找了半天才找到
将blogger原有标签label widget改成标签云形式
通过简单修改,将blogger原有标签widget改成标签云形式
修改html模板
找到
<b:loop values='data:labels' var='label'>
..........
</b:loop>
将<b:loop>标签之间的内容改成:
<b:if cond='data:blog.url == data:label.url'>
<span expr:dir='data:blog.languageDirection'>
<font expr:size='data:label.count'><data:label.name/></font>
</span>
<b:else/>
<a expr:dir='data:blog.languageDirection' expr:href='data:label.url'>
<font expr:size='data:label.count'><data:label.name/></font>
</a>
</b:if>
<span dir='ltr'>(<data:label.count/>)</span>
OK啦 看看效果吧
修改html模板
找到
<b:loop values='data:labels' var='label'>
..........
</b:loop>
将<b:loop>标签之间的内容改成:
<b:if cond='data:blog.url == data:label.url'>
<span expr:dir='data:blog.languageDirection'>
<font expr:size='data:label.count'><data:label.name/></font>
</span>
<b:else/>
<a expr:dir='data:blog.languageDirection' expr:href='data:label.url'>
<font expr:size='data:label.count'><data:label.name/></font>
</a>
</b:if>
<span dir='ltr'>(<data:label.count/>)</span>
OK啦 看看效果吧
2009年4月22日星期三
自己用jquery 实现 google blogger 首页文章摘要
早就注意到google blogger 首页文章不能只显示摘要,而是全部显示
google了几个网页提供的方法,官方的方式是在文章中加一个span,让当在首页显示时span隐藏,这种方式只适合以后新增文章,以前的旧文章均没有加入这个span,就不好使
想到blogger这么高度自定义,那么用jquery实现吧
经过一个晚上的实验,终于出结果了
修改html模板,在<head>下面加入<b:if cond='data:blog.pageType != "item"'>
<script src='http://www.google.com/jsapi'/>
<script type='text/javascript'>
google.load('jquery', '1.3.2');
</script>
<script language='javascript' src='http://www.reindel.com/truncate/jquery.truncate.js' type='text/javascript'/>
<script type='text/javascript'>
$(function() {
$("div[class='post-body entry-content']").truncate( 90, {
chars: /\s/,
trail: [ " ( <a href='#' class='truncate_show'>more</a> . . . )", " ( . . . <a href='#' class='truncate_hide'>less</a> )" ]
});
});
</script>
</b:if>
保存,就大功告成啦,看效果http://liuspring.blogspot.com/
经测试,IE7中会提示:是否停止运行脚本?此页面的脚本造成Internet Explorer 运行速度减慢,如果继续运行,您的计算机将可能停止响应
在FireFox3和Google Chrome中没有什么提示,速度还挺快,但会有显示问题,因为应用的jquery.truncate框架有浏览器兼容问题
google了几个网页提供的方法,官方的方式是在文章中加一个span,让当在首页显示时span隐藏,这种方式只适合以后新增文章,以前的旧文章均没有加入这个span,就不好使
想到blogger这么高度自定义,那么用jquery实现吧
经过一个晚上的实验,终于出结果了
修改html模板,在<head>下面加入<b:if cond='data:blog.pageType != "item"'>
<script src='http://www.google.com/jsapi'/>
<script type='text/javascript'>
google.load('jquery', '1.3.2');
</script>
<script language='javascript' src='http://www.reindel.com/truncate/jquery.truncate.js' type='text/javascript'/>
<script type='text/javascript'>
$(function() {
$("div[class='post-body entry-content']").truncate( 90, {
chars: /\s/,
trail: [ " ( <a href='#' class='truncate_show'>more</a> . . . )", " ( . . . <a href='#' class='truncate_hide'>less</a> )" ]
});
});
</script>
</b:if>
保存,就大功告成啦,看效果http://liuspring.blogspot.com/
经测试,IE7中会提示:是否停止运行脚本?此页面的脚本造成Internet Explorer 运行速度减慢,如果继续运行,您的计算机将可能停止响应
在FireFox3和Google Chrome中没有什么提示,速度还挺快,但会有显示问题,因为应用的jquery.truncate框架有浏览器兼容问题
2009年4月19日星期日
搬家到Google blogger
step1 blogbus注册一用户,然后用其首页的搬家工具导出sohu博客的内容。
step2 yo2注册一用户,导入step1得到的文件,再导出。
step3 在http://wordpress2blogger.appspot.com/转换step2得到的文件。
这是转换好的文件是符合blogger规范的,可以直接导入
step2 yo2注册一用户,导入step1得到的文件,再导出。
step3 在http://wordpress2blogger.appspot.com/转换step2得到的文件。
这是转换好的文件是符合blogger规范的,可以直接导入
部署我的Google App Engine(二)
手上有四个版本的Linux,Ubuntu,Redhat,Fedora,openSUSE,都装过,后来感觉还是Fedora比较好用,我装的是
Fedora9,Fedora10正在下载中
以下Linux安装配置,仅限于在Fedora9上安装通过,资料都是通过Google搜索得来,感谢各位网友,网络的力量真是强大。
1、在VMware中装上Fedora9后,首先安装VMware-tools,方便与主机交互
首先需要下载相应的kernel-devel.rpm包进行安装
首先查看内核版本:uname -r一下,我的是2.6.25-14.fc9.i686,
所以下载kernel-devel-2.6.25-14.fc9.i686.rpm,然后运行rpm -ivh kernel-devel-2.6.25-14.fc9.i686.rpm 进行安装. 内核安
装完毕后,需要用这个命令确定内核 C header 的安装目录:ls -d /usr/src/kernels/$(uname -r)*/include
安装内核具体步骤如下:
[root@localhost ~]# uname -r
2.6.25-14.fc9.i686
[root@localhost ~]# rpm -q kernel-devel
package kernel-devel is not installed
[root@localhost ~]# cd /home
[root@localhost home]# wget ftp://rpmfind.net/linux/fedora/releases/9/Everything/i386/os/Packages/kernel-devel-
2.6.25-14.fc9.i686.rpm
[root@localhost home]# rpm -i kernel-devel-2.6.25-14.fc9.i686.rpm
[root@localhost home]# rpm -q kernel-devel
kernel-devel-2.6.25-14.fc9.i686
再安装gcc,否则安装VMware-tools时会提示:Setup is unable to find the "gcc" program on your machine. Please make
sure it
is installed. Do you want to specify the location of this program by hand?
[yes]
What is the location of the "gcc" program on your machine?
在命令行执行:yum install gcc
然后安装VMware Tools就行了,打开菜单“VM -> Install VMware Tools”,然后有光盘自动弹出,把里面的源代码拷贝出来.我的文
件是VMwareTools-6.5.0-xxxxx.tar.gz,我把它拷贝到/opt里.
安装 VMware TOOLS
cd /opt
tar -zxvf VMwareTools-6.5.0-xxxxx.tar.gz
cd vmware-tools-distrib/
./vmware-install.pl
再一路安回车OK
2、由于在装载xorg-x11-drv-vmmouse驱动时的一个bug,在客户虚拟机的显示中,鼠标位置可能不正确。直到被更新前,在客户机
中添加Option NoAutoAddDevices到/etc/X11/xorg.conf文件的ServerFlags节中。如果需要,创建这个节:
Section "ServerFlags"
Option "NoAutoAddDevices"
EndSection
3、第一,安装JDK
第一,到http://java.sun.com下载最新JDK,当前本人下载的是jdk1.6.0_02!下载文件:jdk-6u2-linux-i586-rpm.bin.注意是
rpm.bin的!
第二,给下载回来的文件增加执行权限:chmod 755 jdk-6u2-linux-i586-rpm.bin.
第三,执行文件:./jdk-6u2-linux-i586-rpm.bin.
第四,执行文件产生一个rpm文件,可直接双击执行也可以在shell下执行:rpm -ivh jdk-6u2-linux-i586-rpm.
第五:配置环境变量,环境变量配置可在全局文件/etc/profile下修改,这样所有linux系统的用户都可以用JDK,如果只是特定的
用户用可修改/root/.bashrc文件,本人的修改为:
#java set
set JAVA_HOME=/usr/java/jdk1.6.0_02
export JAVA_HOME
export JRE_HOME=/usr/java/jre1.6.0_02
set JAVA_BIN=/usr/java/jre1.6.0_02
export JAVA_BIN
第五,当环境变量修改完后,重起系统,在shell下输入java,看是否输入相关JAVA帮助信息,如果有,说明已经安装成功!如果没有,
检查一下变量环境设置是否有误!
2,安装Eclipse,Eclipse不需要安装,只要解压缩就行了
运行Google App Engine不需要Tomecat,记录在这
3,安装tomcat的方法跟安装eclipse的一样,也是下一个tar.gz的文件按安装eclipse方法和步骤就行了!进入tomcat/bin
下./startup.sh,如果在shell出现jdk的相关信息说明已经安装成功启动了,在firefox下打http://localhost:8080/出现tomcat页就
大成功了!
在以上的安装过程之中,出现了小插曲,就是tomcat找不到JDK,后来我又到JAVA网站下了一个JRE回来安装,并建JRE_HOME,重起
TOMCAT,成功了!
4、运行Google App Engine的应用,提示
** Unable to load Mozilla for hosted mode **
java.lang.UnsatisfiedLinkError:
/home/dhofmann/development/ide/gwt-linux-1.4.61/mozilla-1.7.12/libxpcom.so:
libstdc++.so.5: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)解决办法:
Search for stdc++5 in synaptic package manager (System->Administration->Synaptic) and then mark and install it. Or
use this console command:
yum install libstdc++.so.5
停止进程命令:
就是kill 比较不错,如果kill不了. 加上-9
如#kill -9 1778
注1778 为进程pid
pid可以通过ps aux|grep 服务名查得
启动Eclipse时,提示错误:
eclipse.buildId=M20090211-1700
java.version=1.6.0
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=zh_CN
Command-line arguments: -os linux -ws gtk -arch x86
!ENTRY org.eclipse.ui.workbench 4 0 2009-04-18 02:12:18.085
!MESSAGE Widget disposed too early!
!STACK 0
java.lang.RuntimeException: Widget disposed too early!
at org.eclipse.ui.internal.WorkbenchPartReference$1.widgetDisposed(WorkbenchPartReference.java:171)
在网上搜索得知:
eclipse.ini文件加个参数
-vmargs
-Dorg.eclipse.swt.browser.XULRunnerPath=
在Fedora9中安装拼音输入法
保证Fedora 9联网的状态下
在application->system tools->terminal 应用程序->系统工具->终端
输入
su 回车
提示输入root密码
yum install scim 回车
系统会自动从一个镜uy像站点检索scim,并询问是否下载,选择y
下载完成后输入
yum install scim-pinyin 回车
提示和操作如上
然后输入
scim 回车
(笔者的电脑运行到starting SCIM后就没有反应了,不过没关系这时候可以按ctrl+c中断)
选择Fedora 9
System->Preference->Personal->Input Method
系统->首选项->个人->输入法
选择启用新特性,然后选择里面的SCIM,然后选择配置SCIM,
在进入后的界面中选择Global Set 全局设置,在这里设置激活热键即可,然后重新启动电脑,就可以在Fedora 9下面使用中文输入
法了 虽然有点麻烦 但毕竟fedora等众多linux桌面系统还很年轻,有很多不足之处。
参考资料:
http://www.5dlinux.com/article/6/2007/linux_9042.html
http://zhidao.baidu.com/question/62290384.html
http://www.linuxidc.com/Linux/2008-09/16011.htm
Fedora9,Fedora10正在下载中
以下Linux安装配置,仅限于在Fedora9上安装通过,资料都是通过Google搜索得来,感谢各位网友,网络的力量真是强大。
1、在VMware中装上Fedora9后,首先安装VMware-tools,方便与主机交互
首先需要下载相应的kernel-devel.rpm包进行安装
首先查看内核版本:uname -r一下,我的是2.6.25-14.fc9.i686,
所以下载kernel-devel-2.6.25-14.fc9.i686.rpm,然后运行rpm -ivh kernel-devel-2.6.25-14.fc9.i686.rpm 进行安装. 内核安
装完毕后,需要用这个命令确定内核 C header 的安装目录:ls -d /usr/src/kernels/$(uname -r)*/include
安装内核具体步骤如下:
[root@localhost ~]# uname -r
2.6.25-14.fc9.i686
[root@localhost ~]# rpm -q kernel-devel
package kernel-devel is not installed
[root@localhost ~]# cd /home
[root@localhost home]# wget ftp://rpmfind.net/linux/fedora/releases/9/Everything/i386/os/Packages/kernel-devel-
2.6.25-14.fc9.i686.rpm
[root@localhost home]# rpm -i kernel-devel-2.6.25-14.fc9.i686.rpm
[root@localhost home]# rpm -q kernel-devel
kernel-devel-2.6.25-14.fc9.i686
再安装gcc,否则安装VMware-tools时会提示:Setup is unable to find the "gcc" program on your machine. Please make
sure it
is installed. Do you want to specify the location of this program by hand?
[yes]
What is the location of the "gcc" program on your machine?
在命令行执行:yum install gcc
然后安装VMware Tools就行了,打开菜单“VM -> Install VMware Tools”,然后有光盘自动弹出,把里面的源代码拷贝出来.我的文
件是VMwareTools-6.5.0-xxxxx.tar.gz,我把它拷贝到/opt里.
安装 VMware TOOLS
cd /opt
tar -zxvf VMwareTools-6.5.0-xxxxx.tar.gz
cd vmware-tools-distrib/
./vmware-install.pl
再一路安回车OK
2、由于在装载xorg-x11-drv-vmmouse驱动时的一个bug,在客户虚拟机的显示中,鼠标位置可能不正确。直到被更新前,在客户机
中添加Option NoAutoAddDevices到/etc/X11/xorg.conf文件的ServerFlags节中。如果需要,创建这个节:
Section "ServerFlags"
Option "NoAutoAddDevices"
EndSection
3、第一,安装JDK
第一,到http://java.sun.com下载最新JDK,当前本人下载的是jdk1.6.0_02!下载文件:jdk-6u2-linux-i586-rpm.bin.注意是
rpm.bin的!
第二,给下载回来的文件增加执行权限:chmod 755 jdk-6u2-linux-i586-rpm.bin.
第三,执行文件:./jdk-6u2-linux-i586-rpm.bin.
第四,执行文件产生一个rpm文件,可直接双击执行也可以在shell下执行:rpm -ivh jdk-6u2-linux-i586-rpm.
第五:配置环境变量,环境变量配置可在全局文件/etc/profile下修改,这样所有linux系统的用户都可以用JDK,如果只是特定的
用户用可修改/root/.bashrc文件,本人的修改为:
#java set
set JAVA_HOME=/usr/java/jdk1.6.0_02
export JAVA_HOME
export JRE_HOME=/usr/java/jre1.6.0_02
set JAVA_BIN=/usr/java/jre1.6.0_02
export JAVA_BIN
第五,当环境变量修改完后,重起系统,在shell下输入java,看是否输入相关JAVA帮助信息,如果有,说明已经安装成功!如果没有,
检查一下变量环境设置是否有误!
2,安装Eclipse,Eclipse不需要安装,只要解压缩就行了
运行Google App Engine不需要Tomecat,记录在这
3,安装tomcat的方法跟安装eclipse的一样,也是下一个tar.gz的文件按安装eclipse方法和步骤就行了!进入tomcat/bin
下./startup.sh,如果在shell出现jdk的相关信息说明已经安装成功启动了,在firefox下打http://localhost:8080/出现tomcat页就
大成功了!
在以上的安装过程之中,出现了小插曲,就是tomcat找不到JDK,后来我又到JAVA网站下了一个JRE回来安装,并建JRE_HOME,重起
TOMCAT,成功了!
4、运行Google App Engine的应用,提示
** Unable to load Mozilla for hosted mode **
java.lang.UnsatisfiedLinkError:
/home/dhofmann/development/ide/gwt-linux-1.4.61/mozilla-1.7.12/libxpcom.so:
libstdc++.so.5: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)解决办法:
Search for stdc++5 in synaptic package manager (System->Administration->Synaptic) and then mark and install it. Or
use this console command:
yum install libstdc++.so.5
停止进程命令:
就是kill 比较不错,如果kill不了. 加上-9
如#kill -9 1778
注1778 为进程pid
pid可以通过ps aux|grep 服务名查得
启动Eclipse时,提示错误:
eclipse.buildId=M20090211-1700
java.version=1.6.0
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=zh_CN
Command-line arguments: -os linux -ws gtk -arch x86
!ENTRY org.eclipse.ui.workbench 4 0 2009-04-18 02:12:18.085
!MESSAGE Widget disposed too early!
!STACK 0
java.lang.RuntimeException: Widget disposed too early!
at org.eclipse.ui.internal.WorkbenchPartReference$1.widgetDisposed(WorkbenchPartReference.java:171)
在网上搜索得知:
eclipse.ini文件加个参数
-vmargs
-Dorg.eclipse.swt.browser.XULRunnerPath=
在Fedora9中安装拼音输入法
保证Fedora 9联网的状态下
在application->system tools->terminal 应用程序->系统工具->终端
输入
su 回车
提示输入root密码
yum install scim 回车
系统会自动从一个镜uy像站点检索scim,并询问是否下载,选择y
下载完成后输入
yum install scim-pinyin 回车
提示和操作如上
然后输入
scim 回车
(笔者的电脑运行到starting SCIM后就没有反应了,不过没关系这时候可以按ctrl+c中断)
选择Fedora 9
System->Preference->Personal->Input Method
系统->首选项->个人->输入法
选择启用新特性,然后选择里面的SCIM,然后选择配置SCIM,
在进入后的界面中选择Global Set 全局设置,在这里设置激活热键即可,然后重新启动电脑,就可以在Fedora 9下面使用中文输入
法了 虽然有点麻烦 但毕竟fedora等众多linux桌面系统还很年轻,有很多不足之处。
参考资料:
http://www.5dlinux.com/article/6/2007/linux_9042.html
http://zhidao.baidu.com/question/62290384.html
http://www.linuxidc.com/Linux/2008-09/16011.htm
订阅:
博文 (Atom)