我写了一个我想在Windows启动时执行的java程序 . 我写了一个批处理文件,在操作系统启动时运行,但我意识到它不起作用,因为Windows 7会在操作系统启动时停止运行任何批处理文件 .
为了解决这个问题,我想编写一个c程序,用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;
}
我一直收到错误“Bad Address”或“File or Directory不存在” . 谁知道为什么?
谢谢
**编辑
所以我可以让程序在cygwin中正确运行(它执行我的java文件) . 但是当我在Windows中运行它时,它只输出print语句 . 最初,它说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;
}
1 回答
我可以在这里看到两个潜在的错误来源,它们类似于批处理文件问题:cygwin和/或java可能无法在Windows启动时运行 .
你为什么要把它变成cygwin程序?使用system()函数和常规ANSI C有什么问题吗?