在Python中运行包含java命令的批处理文件
在python中手动执行.bat文件时无法执行该文件,这非常令人沮丧 我在此附上我的代码:在Python中运行包含java命令的批处理文件,java,python,batch-file,Java,Python,Batch File,在python中手动执行.bat文件时无法执行该文件,这非常令人沮丧 我在此附上我的代码: directory = 'E:/' with open(os.path.join(directory, 'output_file.bat'), 'w') as OPATH: OPATH.writelines(['"""',"\n"'E:',"\n", 'javacCreatingUser.java',"\n",'javaCreatingUser',"\n
directory = 'E:/'
with open(os.path.join(directory, 'output_file.bat'), 'w') as OPATH:
OPATH.writelines(['"""',"\n"'E:',"\n",
'javacCreatingUser.java',"\n",'javaCreatingUser',"\n",'"""'])
os.system("E:/output_file.bat")
上面是我的python代码,它使用2个java命令创建一个bat文件
javac CreatingUser.java
java CreatingUser
java.lang.NoClassDefFoundError:oracle/iam/identity/exception/ValidationFailedException
位于java.lang.Class.getDeclaredMethods0(本机方法)
位于java.lang.Class.privateGetDeclaredMethods(未知源)
位于java.lang.Class.privateGetMethodRecursive(未知源)
位于java.lang.Class.getMethod0(未知源)
位于java.lang.Class.getMethod(未知源)
位于sun.launcher.launchelper.validateMainClass(未知源)
位于sun.launcher.LaunchHelper.checkAndLoadMain(未知源)
原因:java.lang.ClassNotFoundException:oracle.iam.identity.exception.ValidationFailedException
位于java.net.URLClassLoader.findClass(未知源)
位于java.lang.ClassLoader.loadClass(未知源)
位于sun.misc.Launcher$AppClassLoader.loadClass(未知源)
位于java.lang.ClassLoader.loadClass(未知源)
... 还有7个
错误:发生JNI错误,请检查安装并重试
线程“main”“中的异常未被识别为内部或外部命令,
可操作的程序或批处理文件。
问题是,如果我的文件中缺少一些类,那么它也不应该手动执行,但是手动执行是可以的。javac CreatingUser.java
java创作语言器
这就是问题的根源:您只编译了一个类文件,然后调用该类而没有类路径
Java有一个类似于pythonPYTHONPATH
called的类的搜索路径
您可以尝试一下:
javac CreatingUser.java
java -classpath YOUR_CLASSPATH CreatingUser
您的\u CLASSPATH
可以是冒号(Linux)或分号(Windows)JAR文件和包含类文件的目录的单独列表。让您的类路径指向您需要的JAR,这样您就可以了。您的writeline中javac之后是否需要一个空格?windows系统上的路径中有反斜杠,而不是正斜杠。感谢您的帮助,但是我已经在我的环境v中更新了类路径Ariable以及为什么我能够手动执行bat文件而不传递类路径,但不通过您想要的python脚本E:\output\u file.bat
。在类路径中使用绝对路径。相对路径将始终取决于您当前的工作目录。