小编Sau*_*wal的帖子

在java中,我们如何从类中的方法中破坏类的实例

我接近它类似于删除任何常见对象的情况,即简单地使引用为null并让垃圾收集器完成其工作.

但是,对于在类中等于null,对该对象的唯一引用是"this".以下类的代码是有效的:

class A{
  public A(){
    //Init
  }

  public void method destruct(){
    if(someCondition){
      this=null;  //Is this statement valid? Why / Why not?
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

java garbage-collection destructor

8
推荐指数
2
解决办法
1125
查看次数

使用 execve 运行 PATH 环境中存在的可执行文件

我正在用 C 编写一个简单的 shell。为了执行命令,shell 基本上会创建一个子进程,然后执行相同的子进程来运行该命令。

我使用 execve 函数如下:

execve(argList[0],argList,envList);
Run Code Online (Sandbox Code Playgroud)

这里 argList 和 envList 是 char*(string) 数组,具有以下值:

argList={"ls",NULL}
envList={"/bin",NULL}
Run Code Online (Sandbox Code Playgroud)

我认为由于ls作为 /bin 目录中的可执行文件存在,因此所需的 exec 应该具有与 ls 相同的效果(当然在 LINUX 系统上)。

但是,execve 命令无法对环境中目录中存在的可执行文件执行。

对于在当前工作目录中运行可执行文件来说,这同样适用。

我哪里错了?


结论:我错误地认为环境完全是别的东西。[抱歉:)] 环境数组负责为子进程设置环境。 因此,正如 Jim 所指出的,正确的过程是以以下格式设置环境变量:

envList = { "HOME=/root", PATH="/bin:/sbin", NULL }
Run Code Online (Sandbox Code Playgroud)

正如这里也解释的那样。

此外,为了使用 execve(而不是 execvp)实现上述结果,正如 Nemo 所解释的,我们总是可以重复调用 PATH 中的目录。如果文件不存在,execve 将失败。

c posix

5
推荐指数
2
解决办法
8398
查看次数

是否有可能知道HTTPRequest的目标DOMWindow?

我正在开发一个firefox扩展,它要求我通过过滤掉一些HTTPRequests来拦截页面加载.我是按照这里给出的说明做到的.请注意,我的问题来自此链接的内容.

我使用了HTTPObservers部分给出的方法.它确实有效,我确实能够提取发出的请求的相应网址.

但是,我真正需要的另一件事是获取目标DOM窗口,其中将加载与HTTPRequest相关的内容.是否可以使用HTTPObservers?

在上面的链接中,使用WebProgressListeners描述了另一种方法.

我也试过了.onLocationChange()方法仅返回url栏中的位置更改.是否有可能使用任何这些进度监听器获取HTTPRequest URL?因为如果是这样,那么如果我理解正确,aWebProgress.DOMWindow会给我我需要的窗口.

注意:我使用gwt作为扩展,使用JSNI作为上述部分.

javascript gwt httprequest firefox-addon

4
推荐指数
1
解决办法
603
查看次数

Google Chrome弹出式扩展程序中的Javascript未运行

嗨,我遇到了一个非常奇怪的问题.

我有一个基本的chrome扩展,它有一个默认的popup.html文档,定义如下:

<html>

<head>
  <script type="text/javascript">
    function disp() {
    document.getElementById("test").innerHTML = "Bye";
    }
  </script>
</head>

<body>

<p id="test">Hello</p>
<button type="button" onclick="disp()">'Twas Nice to meet you</button>

</body>

</html>
Run Code Online (Sandbox Code Playgroud)

在浏览器中独立运行html文件时,它的行为与预期一致:单击按钮可更改p标记的文本.但是,通过使用chrome扩展,在弹出窗口中按钮似乎没有响应

这是一般的弹出窗口或我的代码特定的东西吗?

javascript google-chrome google-chrome-extension

3
推荐指数
1
解决办法
8834
查看次数

如何使用GQuery将元素包装为已知元素的父元素

说我有一个div:

<div id="myDiv"> </div>
Run Code Online (Sandbox Code Playgroud)

我有一个GQuery对象,我使用

GQuery mydiv = GQuery.$("#myDiv");
Run Code Online (Sandbox Code Playgroud)

使用这个,我想创建一个新的父元素,它将div元素包装在其中.例如,如果父级是另一个div,则以下是我想要的:

<div id = "parentDiv"> 
   <div id="myDiv"> </div>
</div>
Run Code Online (Sandbox Code Playgroud)

虽然这听起来很简单,但我无法获得理想的结果.

注意:我已经为这个问题标记了JQuery,因为如果JQuery中存在一个简单的方法,它很可能也存在于GQuery中.

jquery gwt gquery

0
推荐指数
1
解决办法
393
查看次数