gpt4 book ai didi

java - 在Python中运行包含java命令的批处理文件

转载 作者:行者123 更新时间:2023-12-01 18:12:32 27 4
gpt4 key购买 nike

当你无法在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文件

  1. javac 创建用户.java
  2. java 创建用户

我可以手动运行 .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.

问题是,如果我的文件中缺少某些类,那么它也不应该手动执行,但手动执行是可以的。

最佳答案

javac CreatingUser.java
java CreatingUser

这就是问题的根源:您只编译一个类文件,然后在没有类路径的情况下调用该类。

Java 有一个类似于 Python PYTHONPATH 的类搜索路径,名为 classpath .

您可以尝试一下:

javac CreatingUser.java
java -classpath YOUR_CLASSPATH CreatingUser

YOUR_CLASSPATH 可以是以冒号 (Linux) 或分号 (Windows) 分隔的 JAR 文件和包含类文件的目录列表。让您的类路径指向您需要的 JAR,就可以了。

关于java - 在Python中运行包含java命令的批处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60440486/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com