我写了一个我想在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”或“文件或目录不存在”。谁知道为什么?
由于
**修改
所以我可以让程序在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;
}
答案 0 :(得分:1)
我可以在这里看到两个潜在的错误来源,它们与批处理文件问题类似:cygwin和/或java可能无法在Windows启动时运行。
你为什么要把它变成cygwin程序?使用system()函数和常规ANSI C是否有问题?