为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

MYYA 2022-08-11 17:44:08
当您无法在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 moreError: A JNI error has occurred, please check your installation and try againException in thread "main" '"""' is not recognized as an internal or external command,operable program or batch file.问题是,如果我的文件中缺少一些类,那么它也不应该手动执行,但手动执行是可以的。
查看完整描述

1 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

javac CreatingUser.java

java CreatingUser

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


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


你可以试试这个:


javac CreatingUser.java

java -classpath YOUR_CLASSPATH CreatingUser

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


查看完整回答
反对 回复 2022-08-11
  • 1 回答
  • 0 关注
  • 121 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信