【发布时间】:2020-02-27 19:30:14
【问题描述】:
当你在 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",'"""'])
os.system("E:/output_file.bat")
以上是我的 python 代码,它使用 2 个 java 命令创建一个 bat 文件
javac CreatingUser.javajava CreatingUser
我可以手动运行 .bat 文件,它工作正常,但我的 python 脚本给了我以下错误:
java.lang.NoClassDefFoundError: oracle/iam/identity/exception/ValidationFailedException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.privateGetMethodRecursive(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at sun.launcher.LauncherHelper.validateMainClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: oracle.iam.identity.exception.ValidationFailedException
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 7 more
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" '"""' is not recognized as an internal or external command,
operable program or batch file.
问题是,如果我的文件中缺少某些类,那么它也不应该手动执行,但手动执行是可以的。
【问题讨论】:
-
你的 writelines 中 javac 后面是否需要一个空格?
-
Windows 系统上的路径中有反斜杠,而不是正斜杠。
标签: java python batch-file