0

我写了一个小java程序,我想在windows启动时执行它。我写了一个批处理文件在操作系统启动时运行,但我意识到它不起作用,因为 Windows 7 在操作系统启动时停止运行任何批处理文件。

为了解决这个问题,我想编写 ac 程序,用 cygwin 编译它(以便它的 .exe),并在操作系统启动时运行它。我希望它执行命令:

java -jar ipsetup.jar

我无法让它工作,所以我试图让 c 程序执行“ls”命令。这是代码:

int main(int argc, char ** argv){

//argv[0] = "java";
//argv[1] = "-jar";
//argv[2] = "c:/windows/ipstartup.jar";

execv("/bin/ls", "/bin/ls");
printf("%s",strerror(errno));
return 1;

}

我不断收到错误“地址错误”或“文件或目录不存在”。有谁知道为什么?

谢谢

**编辑

所以我可以让程序在 cygwin 中正确运行(它执行我的 java 文件)。但是当我在 Windows 中运行它时,它只输出打印语句。原来是说缺少cygwin1.dll,所以我把它放到了windows目录下。这是我的源代码:

#include <errno.h>
#include <stdio.h>

int main(int argc, char ** argv){

//argv[0] = "java";
//argv[1] = "-jar";
//argv[2] = "c:/windows/ipstartup.jar";


system("java -jar c:/windows/ipstartup.jar");
printf("I am here");
return 1;

}

4

1 回答 1

1

我可以在这里看到两个潜在的错误来源,它们类似于批处理文件问题:cygwin 和/或 java 在 Windows 启动时可能不起作用。

你为什么把它做成一个cygwin程序?使用system()函数和常规 ANSI C 有什么问题吗?

于 2012-06-06T14:23:22.170 回答