Ну, дуже пізно давати будь-які пропозиції чи рішення, але все-таки я стикався з подібними проблемами, якимись більш орієнтованими на дослідження. В основному я намагався надати положення та автоматичне оцінювання завдань програмування для курсу Java на платформах електронного навчання.
- одним із способів може бути: Створити окремі віртуальні машини (не JVM), а фактичні віртуальні машини з мінімально можливою конфігурацією ОС для кожного студента.
- Встановіть JRE для Java або бібліотеки відповідно до ваших мов програмування, залежно від того, що ви хочете, щоб студенти компілювали та виконували на цих машинах.
Я знаю, що це звучить досить складно і багато завдань, але Oracle Virtual Box вже пропонує Java API для динамічного створення або клонування віртуальних машин.
https://www.virtualbox.org/sdkref/index.html (Примітка, навіть VMware також пропонує API для того ж)
А щодо мінімального розміру та конфігурації дистрибутива Linux ви можете звернутися до цього тут http://www.slitaz.org/en/ ,
Отже, якщо студенти псують або намагаються це зробити, можливо, вони мають пам’ять, файлову систему чи мережеві розетки, максимум, він може пошкодити власну ВМ.
Крім того, всередині цих віртуальних машин ви можете забезпечити додатковий захист, наприклад, Sandbox (менеджер безпеки) для Java або створення облікових записів для конкретних користувачів в Linux і, таким чином, обмеження доступу.
Сподіваюся, це допомагає !!
Thread.stop
спричинить проблеми в коді бібліотеки Java. Подібним чином для коду бібліотеки Java потрібні дозволи. Набагато краще дозволитиSecurityManager
користуватисяjava.security.AccessController
. Завантажувач класів, ймовірно, також повинен надавати доступ до власних класів коду користувача.