Java 如何调用操作系统命令

在日常开发中,我们会遇到这样的问题,我想通过Java程序调用一下oracle数据库的导入或者导出命令,或者调用linux的某个shell执行某个针对操作系统的操作,Java提供了一个方式让我们和操作系统交互:Runtime.getRuntime().exec(cmdmml);这里的cmdmml便是操作系统的命令,需要注意的是不同操作系统的规则,比如windows,执行操作系统的命令时,需要在命令前加”cmd /c “来告诉java执行的是一个dos命令。而linux下则不需要。

通过exec方法执行完命令后,大部分情况下,我们需要获取命令的执行结果,比如导出的话,我们需要知道现在正在导出哪个表?哪些表已经导出了。

Runtime.getRuntime().exec(cmdmml)方法会返回一个Process。

process.getInputStream()就是正常的返回结果,而process.getErrorStream()则是异常的返回结果。我们可以通过BufferedReader包装输出流读取里面的内容。需要注意的是,针对InputStream和ErrorStream的处理需要在新线程中处理。不要阻塞主线程。

JUBULA 扩展功能

JUBULA是一个自动化测试功能,它能够识别swing的绝大部分控件,如JButton,JTextFiled,JTable,JTree等等。但是对于特殊情况,如JTable使用了CellRender渲染器,它就不能识别了。为此,他们提供了两种方式来给用户扩展实现。1) TableCellRenderer renderer = m_table.getCellRenderer(
                                row, column);
     Component c = renderer.getTableCellRendererComponent(
                                m_table, value, selected, true, row,
                                column);
返回的component对象,实现getTestableText 或者 getText 方法。

2) 第一种情况是比较简单的情况,更为复杂的是TableCellRenderer 是单对象注入,而渲染器的getTableCellRendererComponent又返回其本身,这种情况下,就必须通过适配器工厂(IAdapterFactory)来获取渲染适配器(ITextComponent),以获取渲染器的Text。IAdapterFactory和ITextComponent是JUBULA提供的两个扩展接口,在它的common(org.eclipse.jubula.rc.common_2.3.0.201404150900.jar)包里。具体实现类放在jubula.rc.swing包里。具体实现时,根据笔者经验,建议将原来的SwingAdapterFactory改写,添加对新控件的支持,然后换个名字再放到jubula.rc.swing包的相同位置(框架是按照固定路径找这个AdapterFactory的)。

扩展完Table渲染器,应该来说jubula基本可以抓取所有的swing组件了。

google不建议使用302跳转

301跳转与302跳转的区别

301重定向是目前Chris.DL在对每个客户提供SEO服务时,必定会讲到的东西,过程中,往往会发现大家使用的都是302跳转,虽然最终看到的效果是一样的,但对搜索引擎来讲,301和302还是有区别的。 301的含义是“永久重定向”,而302的含义是“临时重定向”,参考:服务器状态代码含义 那么为什么不能用302呢?

301 jump

下面摘自Zac的一段文章内容 302重定向和网址劫持(URL hijacking)有什么关系呢?这要从搜索引擎如何处理302转向说起。从定义来说,从网址A做一个302重定向到网址B时,主机服务器的隐含意思是网址A随时有可能改主意,重新显示本身的内容或转向其他的地方。

大部分的搜索引擎在大部分情况下,当收到302重定向时,一般只要去抓取目标网址就可以了,也就是说网址B。 实际上如果搜索引擎在遇到302转向时,百分之百的都抓取目标网址B的话,就不用担心网址URL劫持了。 问题就在于,有的时候搜索引擎,尤其是Google,并不能总是抓取目标网址。为什么呢?比如说,有的时候A网址很短,但是http://www.32zf.com做了一个302重定向到B网址,而B网址是一个很长的乱七八糟的URL网址,甚至还有可能包含一些问号之类的参数。

很自然的,A网址更加用户友好,而B网址既难看,又不用户友好。这时Google很有可能会仍然显示网址A。 由于搜索引擎排名算法只是程序而不是人,在遇到302重定向的时候,并不能像人一样的去准确判定哪一个网址更适当,这就造成了网址URL劫持的可能性。也就是说,一个不道德的人在他自己的网址A做一个302重定向到你的网址B,出于某种原因, Google搜索结果所显示的仍然是网址A,但是所用的网页内容却是你的网址B上的内容,这种情况就叫做网址URL劫持。你辛辛苦苦所写的内容就这样被别人偷走了。

其实302的跳转本身是没有错的,但因为被一些作弊者用多了,Google当然对这个就比较敏感了,毕竟Google面对的是如此海量的数据,你难道不怕被误杀吗? Google的官方内容一再强调用301来转移内容,况且,301和302在程序上的设置相差很小,既然如此,何必要冒险用302呢?

大家都已经对基本的301跳转和302跳转做了解释, 我从我的理解解答下。

如果从便于搜索引擎友好的话当然是301最合适,一般情况下非特意临时性URL转移,都尽量用301跳转,这样的一个好处是搜索引擎会把该URL的PR值都带到跳转后的地址,而302跳转早期被很多网站当作作弊手段,已经被多数搜索引擎重点盯查。

而性能方面原则上301跳转和302跳转没有多大差别,不过考虑到搜索引擎个案对待,也建议使用301跳转,301跳转搜索引擎是不对原地址进行访问的,而302跳转除了象@张洪保所讲可能被劫持之外,还有可能会加大对服务器的URL请求数量。

搜索引擎对302跳转进行判断的时候,如果发现跳转目标页面URL更加复杂,就会返回来对原URL进行访问,寻取一个简单友好的地址,这样无形会加重服务器性能损耗,因此301跳转要比302跳转靠普也对服务器性能有保障。

301的含义是“永久重定向”,而302的含义是“临时重定向”
301 代表永久性转移是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址。

由于搜索引擎排名算法只是程序而不是人,在遇到302重定向的时候,并不能像人一样的去准确判定哪一个网址更适当,这就造成了网址URL劫持的可能性。也就是说,一个不道德的人在他自己的网址A做一个302重定向到你的网址B,出于某种原因, Google搜索结果所显示的仍然是网址A,但是所用的网页内容却是你的网址B上的内容,这种情况就叫做网址URL劫持。你辛辛苦苦所写的内容就这样被别人偷走了。

Google’s Matt Cutts: 为什么google在SERP中会改写你的网页title

Google’s Matt Cutts 最近发布了一个最新的视频,解释为什么在有的时候,搜索引擎SERP中并不是直接显示你原本的title,而是给你改写了。主要观点如下:

针对搜索关键字,Google根据什么来展示不同的网站搜索标题?

  • 算法会找到相对短的标题
  • 优秀的网页description
  • 是否与搜索查询的关键字相匹配。

如果网页的HTML标题符合上面三项Google就会展示站长指定的标题,否则Google可能会根据网站内容和链接到网站的锚文本来寻找更适合的标题。

matt 英文原文参考:

The criteria Google uses when coming up with a new title tag are:

(1) Something that is “relatively” short

(2) Have a good description of the page and “ideally” the site that the page is on.

(3) And that it is relevant to the query.

If your existing title tag fits the criteria, then Google will most likely use your title tag. If not, then Google may use (1) content on your page, (2) anchor text links pointing to the page and/or (3) may also use the Open Directory Project.

Google关键词工具增加新功能

Kim 今日宣称Google AdWords 中的关键词分析工具Google Keyword Planner Tool增加了一些新的功能模块。

主要新功能如下:

  • 关键词分析的时候可以限定时间范围
  • 可以对不同的时间的关键词进行对比
  • 比较查看单个广告组和关键字两个时期的绝对和相对变化
  • 手机版的可视化优化
  • 识别发生故障的设备和目标地点
  • 灵活可选择的时间筛选
  • 设备分割和调整竞标价格
  • 故障位置为子GEOS您的目标位置
  • 可视化和估计子GEOS

Kim对每个功能都做了详细的解释,感兴趣的可以去她的blog仔细查看

Google熊猫算法很快将卷土重来

在最近的SMX大会上,Google的反垃圾专家MATT CUTTS表示他们正在研究新的“熊猫算法”,在下一次更新的时候“熊猫算法”将比较“温和”。

MATT明确表示,这次的熊猫算法的主要目的在于帮助重要企业,所以他们受到熊猫算法的影响会比较大。虽然Matt 没有给出明确的发布日期,但他也明确表示,这次的更新,将是一次大的更新,并且会使熊猫算法在某些网站上的影响缩小。

panda-poll-1328623551

熊猫算法是不是已经开始慢慢发布了?是的,去年他们在5月实行,七月才发布声明,去年仅18%的搜索结果收了熊猫算法的影响。我认为这次Google会区别于之前的做法,提前发布声明

原文参考:http://searchengineland.com/yes-google-specifically-within-depth-articles-186627

URL长度超过2000字符数的搜索引擎将无法识别

想要做好seo,必须专注于一些细节点,包括到底多长的URL对于搜索引擎才是最友好的。

在google站长论坛中,看到一个关于到底多少长度的URL才是最合适的讨论。

google的John Mueller表示,并没有明确的长度限制,但是通过google的声明我们可以知道url的长度要少于2000字节。
John Mueller的原话:

As far as I know, there’s no theoretical length limit, but we recommend keeping URLs shorter than 2000 characters to keep things manageable.

如果你的URL长度大于2000,它看起来会像下面这种样子:

http://www.seroundtable.com/google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219-google-url-characters-18219123.html

不管是对搜索引擎还是用户体验都是很不好的。

谷歌的Matt Cutts:外链对于搜索引擎的搜索结果质量很重要

Matt Cutts今天在一个视频中重申了反向链接(外链)的对于搜索结果很重要。

matt cutts
matt cutts

该视频主要解释了以下问题:

“GOOGLE有没有一个版本的搜索引擎是完全排除了任何反向链接的因素? 我不知道会是什么样的搜索结果,因为好奇所以来尝试了一下。

Matt Cutts说,有排除反向链接相关性的搜索引擎没有正式版,但他证实他的团队已经运行内部测试,看看会发生什么。

Matt Cutts说,不包括反向链接的因子,导致页面搜索结果的相关性差了很多。

“事实证明,反向链接,即使有一些垃圾链接以及广告等购买链接在,但是对于搜索结果他仍然一个重要的影响因素”

所以想要在google取得好的排名,合理的建立外链,依然是每个站长的重要任务。

Matt Cutts: 低质量的评论对google的PR没有影响

高质量的内容一直都是搜索引擎以及站长们想要的,为用户提供有用的内容,提供更好的用户体验是共同的目标。

但是如果在你的网站或者wordpress博客上,有一些评论与文章不相关,甚至语法都是错误的,一些“低质量”评论。这样的评论会影响网站的权重吗?Matt Cutts在最近的站长帮助视频中给与了解答。

Matt Cutts解释“只要你的网站文章本身语法以及内容没有问题,你就不用担心低质量评论的事情,人们在互联网上并不一定会说有意义的事情,比如youtube,你可以看到在youtube上有很多不知所谓的评论,但这并不会影响youtube的排名”

但是同时Matt Cutts也强调,注意这里说的低质量的评论,而不是垃圾评论,垃圾评论是应该要删除屏蔽的。

结论:废话评论不会影响网站质量,用户意见不会影响排名。

matt cutts
matt cutts

个人站长如何加入Google Adsense广告联盟(图文详解)

Google Adsense是google推出的广告联盟计划,可以算是现在多种广告联盟的鼻祖了,Google Adsense主要是依靠点击CPC获取佣金,是以美金结算,平均一次点击大概在0.15美金,也就是7毛钱左右,在众多的广告联盟里面,收益算是比较高的。下面介绍一下个人站长如何加入Google Adsense广告联盟。

1、  打开Google Adsense申请地址,点击右上角的sign up now

Google Adsense

2、  如果默认是英文的可以点击右上角的更改语言,找到中文简体。在页面的左下角点击是,如果你有google账户,点击 继续以google账户登录,如果没有google账户点击创建一个新的google账户

Google Adsense2

3、  输入你要申请的网站的网址,以及你网站内容的主要语言,点击继续。这里可以看到google adsense的条款,条件以及合作规范。

Google对中国绝大多数个人站点最大的要求就是诚实。成为Google Adsense的用户,你永远不要准备任何作弊行为!你自己不能点击自己的广告,即使想测试一下也不允许。一个IP在24小时之内一次以上的点击是无效的,通过代理服务器的点击是违反规定的,你不要试图采用软件或其他的方式作弊,对Google Adsense,你的行为都将显得极其愚蠢和可笑。

Google Adsense3

4、选择国家和时间,输入你的常用地址以及账户收款地址,因为google是每满100美元才可以结算,支票会寄送到你的收款地址,所以收款地址一定不可以乱填,当然填错了也不用着急,后面也可以到个人账户里面更改的。

5、提交后就耐心等待两天左右的时间,如果您提交的申请信息通过了审核,Google AdSense 小组就会发邮件到您事先填写的邮箱里,通知您的 Google AdSense 申请已得到批准。邮件里还会告诉您一些基本操作步骤:第 1 步:启用帐户、第 2 步:将 AdSense 代码粘贴到您的网页、第 3 步:查看结果;还有一些“重要注意事项”。

如果你的网站是使用wordpress搭建的,也可以直接使用google最近发布的一款Google AdSense插件来对网站进行广告发布,具体的使用方法可以参考我之前的文章:

Google adsense发布商Google Publisher Plugin插件教程