Java的痛

Kris_zcl 发布于 2014/06/26 10:03
阅读 439
收藏 0

转自:  OurJS

在2014年,如果一个程序员在命令行中运行一段简单的程序变得非常困难,那么这就是不正常的。

我写了些代码去连接  Keybase 和  OpenKeychain, 本计划写更多。因为这是一个Android App,而且代码是用Java写的,我相信也有很多人使用Java,那些人有能力使用它,所以我也用了。但是这个东西写起来不应该这么困难。

我的Java代码已经在线上可以正常工作了,所以我把它们从 OpenK­ey­chain 中拷出来,然后创建了一个新的项目,然后我想我应该可以从命令行跑起来,然后集成测试一下(smoke test)。

但是!行不通。首先它不停地在Java命令行提示,它缺少我项目中的一些class文件和json.org库(其实我早就已经下载了,所以我才能编绎这个笨蛋程序)。对的,我十年前已经知道这个东西了,这一步真不应该有什么复杂的。

当我指定以后,它拒绝运行,因为我想去从 https:// 抓取内容(你懂的)。但是不行,Java 7做不到,好吧,我真的不知道为什么。在一些认证表(certs table)中有一些无法理解的补丁。所以Java 7不行了,OS X也不行了,一切都不行了,然后它无法正常工作了;显然,你可以在底层安全机制里修复它。但是我是只想从该死的(fucking)的https连接处抓取一些内容,并不想动任何其他任何代码。顺便提一下,curl可以在命令行里从一样的地址里获取这些东西,但是Java做不以。

所以最简单的解决办法是创建一旧子Android项目叫 KeybaseTest, 设置一个空的TextView然后我就可以写类似下面的代码。

printf("%d %s", http­s_s­ta­tus, http­s_mes­sage_­body);

当然,为了这样搞,我不得不将我的Mac机连接到一台真正的Android设备,然后只是为了运行这段简单的代码,然后我就可以使用adb指令开始调试了。
记住!这是最简单的运行Java代码的方式。

亲爱的Java: 我可以在命令行里直接运行Ruby或Python或Go或JavaScript或C代码。但是我运行不了你,这是不是意味着你已经快不行了?

现在,我的Keybase Java客户端已经被重构成了一个Android项目,因为就像我之前说的,在2014年,最简单运行Java程序的办法是连上一台我自己拥有的互联网设备。


评论:这里有很多评论,“Tim Bray指出这种问题只有Java初学者才会遇到,我不关心这个人是谁,但是我不想花时间去学习其它工具”。
但是事实上这个家伙是Xml规范的联合起草人,而且是sun技术部门的总监,显然它不是初学者! 更多评论参见  Hack News. 

加载中
0
宇宙大将军
这家伙是Sun技术部门的总监?我终于知道Sun为什么倒闭了。它不是初学者,它连初学者都不如。。。
0
xesam
xesam
没看懂在说啥啊。。。
0
mallon
mallon
傻逼碰到二货,一对极品
返回顶部
顶部