NullPointerException
s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException
. Они наиболее распространены, но другие способы перечислены на странице NullPointerException
javadoc.
Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException
, be:
public class Example {
public static void main(String[] args) {
Object obj = null;
obj.hashCode();
}
}
В первой строке внутри main
я явно устанавливаю ссылку Object
obj
равной null
. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException
, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.
(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)
Попробуйте mkisofs. Это - часть проект cdrecord.
Явный разъем, но я только что выпустил альфа-версию библиотеки OpenSource C#, которая может создать файлы ISO. Непосредственно не интегрируется с Nant, но Вы могли обернуть библиотеку для достижения этого. Существует демонстрационное приложение (ISOCreate), который создает ISOs из структуры каталогов, но этот образец мог также запустить Вас:
CDBuilder builder = new CDBuilder();
builder.UseJoliet = true;
builder.VolumeIdentifier = "A_SAMPLE_DISK";
builder.AddFile(@"Folder\Hello.txt", Encoding.ASCII.GetBytes("Hello World!"));
builder.Build(@"C:\temp\sample.iso");
.NET DiscUtils (на GitHub)
Получите Загрузку mkisofs это здесь , это - часть Cdrtools. Доступный для большинства платформ. Примеры Useage:
mkisofs -v -dvd-video -V "VOLUME_NAME" -o "c:\my movies\iso\movie.iso" "c:\my movies\dvd"
mkisofs -r -R -J -l -L -o image-file.iso c:\project\install
Если Вы хотите быть захватывающей Microsoft (не, устанавливают дополнительное программное обеспечение). Можно использовать IMAPI, встроить в Windows для записи изображений. Дополнительная информация относительно сценариев IMAPI может быть найдена в MSDN
Я использовал magiciso, но не протестировал его extensivly. (Я могу попробовать некоторых из других упомянутых здесь после некоторого тестирования), я сначала делаю установщик (единственный файл) тогда просто делают это ISO.
Вот результат моей борьбы получить эту работу в Python:
add_option = '-a'
add_option_value = installer_fullpath
response_option = '-py' # answer yes to all options
# Get the tempfile name -- to resolve long name issue
# --> My file names were initially too long for MagicIso and it would choke
f_handle = tempfile.TemporaryFile(suffix='.iso', prefix='mi_', dir='.')
temp_filename = f_handle.name
f_handle.close() # File automatically deleted on close
args = (magiciso_exe_fullpath,temp_filename,response_option,add_option,add_option_value)
# log output to file
magiciso_con_f = open(MAGICISO_CON_LOG,'w')
magiciso_process = subprocess.Popen(args,stdout=magiciso_con_f,stderr=magiciso_con_f)
magiciso_process.wait()
Я использую mkisofs.exe
от инсталляционного пакета nLite или BartPE, от того, где я также изучил обязательные параметры для создания загрузочного CD.
Я нашел значительно более простой подход, и он не требует Cygwin: CDBurnerXP
На самом деле он не рекламируется на сайте, но он включает версию для командной строки, например cdbxpcmd.exe
. Также имеется некоторая документация по параметрам командной строки .
Особый интерес представляют параметры -iso
и -формат
; использовал что-то вроде:
cdbxpcmd --burn-data -folder:input -iso:output.iso -format:iso -changefiledates
для создания ISO с именем output.iso
из файлов в папке input
Инструмент командной строки не делает ' Похоже, что вы можете напрямую создать загрузочный компакт-диск. Однако, если вы знаете, что ваш список файлов не изменится (то есть только содержимое этих файлов), вы можете попробовать следующее (не проверено):
Затем вы можете использовать следующее command
cdbxpcmd --burn-data -layout:mycompilation.dxp -iso:output.iso -format:iso