跨平台没错 但你要了解点平台知识
好吧 实在是闲的没事 就把原来的一些笔记翻出来看了看 翻到个比较有意思的我是java小白一只
群里有个人说出现了个不能读取java的错误信息(后来发现是文件没传完啊 怨念! 而不是文件找不到或者文件名等其他原因)
然后就想是不是因为文件被占用了 于是写了个小东西试试看:
import java.io.*;
import java.nio.*;
import java.nio.channels.*;
public class TryLock{
public static void main(String args[]) throws Exception{
File file=new File("Text.java");
FileOutputStream pis=new FileOutputStream(file,true);
FileChannel fc=pis.getChannel();
FileLock fl=fc.tryLock();
System.out.println(fl);
Thread.sleep(30*1000);
if(fl!=null){
fl.release();
}
fc.close();
}
}
很简单的一个小例子
Text.java无非就是helloworld之类的
以上是用来锁的代码在win下我先在一个cmd下运行这个程序然后我在30s内在另一个cmd下用javacText.java 会出现:
读取Text.java时出错,另一个程序已锁定文件的一部分,进程无法访问本来以上就结了
但那时(其实也就1个月前啦)还装了ubuntu 12.04(gnome常常卡死不动啊有木有......)
然后就在那边也试着运行了下:
居然发现可以在锁定的情况下正常编译那个Text.java 甚至可以修改 删除........
瞬间不淡定了....去csdn上问 回答说 在linux内核的系统中你甚至可以直接删除运行的程序......
这就对跨平台的结果一致性产生了冲击但问题的本身还是来源于系统底层的本身 系统本身允许了这样的行为 和跨平台本身没关
所以 这一结果对于java的跨平台是没错的
但你要了解点平台的知识 不然会出现让你很费解的情况(我以上的例子.....)
以上..
需要更有有关linux内核的系统关于删除运行时文件的说明?:
http://bbs.chinaunix.net/thread-1702707-1-1.html
虽然是很简单的东西...转帖请说明出处 如有错误 欢迎提出~@154- 这样的话我们是不是可以再android的app运行时删掉它...
我是小白= = ClockSmith 发表于 2012-8-29 19:47 static/image/common/back.gif
这样的话我们是不是可以再android的app运行时删掉它...
我是小白= =
你可以试试看呀~~~我反正木有试过 nongeek 发表于 2012-8-29 22:09 static/image/common/back.gif
http://blog.kangkang.org/index.php/archives/49
lz看了这个没有...
意思就是
漏洞?
貌似unix也是这样的 我不相信内核更新速度比win快的linux连这个也修补不好~~
对于底层实在不懂呢 反正初印象就这样好了 里面只说了cp吗 不是太懂 但是用 rm也是可以删除的~~
nongeek 发表于 2012-8-29 22:09 static/image/common/back.gif
http://blog.kangkang.org/index.php/archives/49
lz看了这个没有...
意思就是
哦 对了 我原文上有个链接 那里解释的是和inode有关 蛮有道理的可以看看哦 nongeek 发表于 2012-8-30 01:13 static/image/common/back.gif
我还以为lz已经搞清楚了的说...
嗯,那个帖子是05年,如果照他的意思应该是一个bug吧
这不能算是bug吧 因为我做这个实验是在一个月前 内核是3.4.*的 ubuntu12.04LTS nongeek 发表于 2012-8-30 12:22 static/image/common/back.gif
不不不,我是指的 那篇文章提到的cp那个问题...囧
http://blog.kangkang.org/index.php/archives/49
我误会了 哈哈
不过这文章和我给的那个链接里的又有点不一样
..这文章说是不建议会带来损害 但那篇说的是没有关系 实际内容其实是锁定了inode了
也许05年那个真算个bug也不一定~~
底层的东西有时间再看了 毕竟还只是一个小白
现在已经挖了好几个大坑 什么SSH啊 并发实践啊之类的 在填补中....
谢谢指导了@152-
页:
[1]