Я не могу скомпилировать и запустить программу Java с помощью сценария Python

Я думаю, что когда я использую os.system("cd java path") чтобы изменить путь к каталогу Java, он просто не меняет путь к этому каталогу ... Вот код, который я написал:

    import os
    import time
    #import subprocess
    os.system("cls")
    os.system("cd C:\Program Files\Java\jdk-13.0.1\bin")
    time.sleep(2)
    os.system("javac add.java")
    os.system("java add")

Ошибка:

ошибка: файл не найден: add.java Использование: javac использовать --help для списка возможных опций Ошибка: не удалось найти или загрузить основной класс add Добавить Причина: java.lang.ClassNotFoundException: add

Всего 2 ответа


Я думаю, что проблема в том, что ваш текущий каталог может не содержать add.java после выполнения cd C:\Program Files\Java\jdk-13.0.1\bin : вы можете попробовать это "статическое решение", которое работает для одного Java-установка:

import os
import time
#import subprocess
os.system("cls")
time.sleep(2)
os.system("C:\Program Files\Java\jdk-13.0.1\bin\javac add.java")
os.system("C:\Program Files\Java\jdk-13.0.1\bin\java add")

Вы также можете включить путь установки Java в PATH операционной системы, и вы можете запустить javac и java без их абсолютного пути. Если вы позже измените версию Java, то при обновлении только пути Java скрипт будет работать. В этом случае код будет таким:

import os
import time
#import subprocess
os.system("cls")
time.sleep(2)
os.system("javac add.java")
os.system("java add")

Этот код работал для меня, и мне пришлось скопировать скрипт в папку bin, чтобы он работал ..

  import os
  import time
  aditya = True
  while aditya:
      os.system("cls")
      print("Enter a program name to execute:")
      name = input()
      os.system("cd C:\Program Files\Java\jdk-13.0.1\bin")
  """Note : Code works without above statement(cd path)because it does nothing since 
   we are in same directory."""
     time.sleep(0.5)
     os.system(f"javac {name}.java")
     os.system(f"java {name}")
     key = input()

Есть идеи?

10000