Java Cygwin C文件返回;“地址不正确”;使用execv时

Java Cygwin C文件返回;“地址不正确”;使用execv时,java,c,exec,Java,C,Exec,我编写了一个小java程序,希望在windows启动时执行。我编写了一个批处理文件,在操作系统启动时运行,但我意识到它无法工作,因为windows 7会在操作系统启动时停止任何批处理文件的运行 为了解决这个问题,我想写一个c程序,用cygwin编译它(这样它的.exe),并在操作系统启动时运行它。我希望它执行以下命令: java-jar ipsetup.jar 我无法让它工作,所以我尝试让c程序执行“ls”命令。代码如下: int main(int argc, char ** argv){ /

我编写了一个小java程序,希望在windows启动时执行。我编写了一个批处理文件,在操作系统启动时运行,但我意识到它无法工作,因为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;
}

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

谢谢

**编辑

因此,我可以让程序在cygwin中正确运行(它执行我的java文件)。但当我在windows中运行它时,它只输出print语句。最初,它说cygwin1.dll丢失了,所以我把它放在Windows目录中。以下是我的源代码:

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

}

我可以在这里看到两个潜在的错误源,它们与批处理文件问题类似:cygwin和/或java可能无法在Windows启动时工作


你为什么要把这变成一个cygwin程序?使用函数和常规ANSI C是否有问题?

我没有尝试system()。现在让我试试。system()工作得很好。泰。你知道为什么常规exec不起作用吗?首先,你调用了错误的exec变体
execv
期望第二个参数是传递给程序的
char*
参数数组。按照您调用它的方式,您应该使用
execl
。当使用系统(“java-jar ipstartup.jar”)时,当我在windows中运行程序时,它似乎不会执行此语句。知道为什么吗?java可执行文件在您的
路径上吗?(即,当您在windows命令提示符下键入java时会发生什么情况?)在该启动脚本运行的用户帐户路径上如何?
//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;