Лучшим способом (рекомендуется) является использование пакета java.util.Concurrent. Используя этот пакет, вы можете легко избежать этого исключения. см. Модифицированный код
blockquote>public static void main(String[] args) { Collection<Integer> l = new CopyOnWriteArrayList<Integer>(); for (int i=0; i < 10; ++i) { l.add(new Integer(4)); l.add(new Integer(5)); l.add(new Integer(6)); } for (Integer i : l) { if (i.intValue() == 5) { l.remove(i); } } System.out.println(l); }
Если вы посмотрите на страницу пакета на CRAN , вы увидите следующее:
SystemRequirements: для построения из источника: GDAL> = 1.7.1 библиотека из http://trac.osgeo.org/gdal/wiki/DownloadSource и PROJ.4 (proj> = 4.4.9) из http://trac.osgeo.org/ Рго / [/ д2]; Основы GDAL OSX, созданные Уильямом Кингсбери в http://www.kyngchaos.com/ , могут использоваться для установки источника в OSX.
Как вам кажется под Linux вы всегда создаете пакет из исходного кода, поэтому вам нужно будет установить соответствующие библиотеки в вашей системе. Если вы находитесь под Монетным двором, Ubuntu или другим производным Debian, вы можете сделать:
$ sudo apt-get install libgdal1-dev libproj-dev
. Один совет, который может быть полезен, все еще находящийся в системе на базе Debian, заключается в установке пакета
apt-file
и запуске :$ sudo apt-file update
Затем, когда вы получите сообщение об ошибке, например:
configure: error: proj_api.h not found in standard or given locations.
Вы можете использовать следующую команду, чтобы определить, какой пакет вы должны установить, чтобы получить отсутствующий файл:
$ apt-file search proj_api.h libproj-dev: /usr/include/proj_api.h
Для людей в многопользовательских средах с несколькими версиями proj, установленными (из источника), метод, который я использовал, был:
install.packages('rgdal',configure.args="--with-proj-include=/sw/proj/4.9.2/include --with-proj-lib=/sw/proj/4.9.2/lib")
Для пользователей Mac (OS.X Version10.12.6), это сработало для меня. Сначала перейдите в командную строку и установите gdal , используя >> brew install gdal
. Во-вторых, добрались до Rstuduio (консоль R) и установили пакет с помощью install.packages("rgdal")
Вот что я сделал в Centos7:
yum install gdal gdal-devel
yum install proj
yum install proj-nad
yum install proj-epsg
Тогда просто
install.packages("rgdal")
Работал отлично, но это было не совсем понятно.
proj-devel
, а не только proj
. В противном случае мы получаем configure: error: proj_api.h not found in standard or given locations
. Это для rgdal 1.2-6.
– HenrikB
22 April 2017 в 03:51
В системе Fedora 21, использующей R-3.2.0, работало:
yum install gdal.x86_64 gdal-devel.x86_64 gdal-libs.x86_64
yum install proj.x86_64 proj-devel.x86_64
yum install proj-epsg.x86_64 proj-nad.x86_64
. Очевидно, это было результатом повторных попыток получить:
install.packages("rgdal")
работать. Возможно, вы можете сделать все это в одной установке.
Для меня (Ubuntu 16.04, R 3.4.2) была использована смесь из вышеперечисленных решений:
sudo apt-get install libudunits2-dev libgdal-dev libgeos-dev libproj-dev
Затем просто установили rgdal
из CRAN.
Если вы используете OS X с менеджером пакетов Homebrew и имеете R, установленный через homebrew-science tap , вы можете установить rgdal, предварительно установив gdal.
brew install gdal
Сначала вы можете указать параметры, доступные перед запуском, если вы хотите что-то fancy , как поддержка postgresql. Чтобы увидеть доступные типы параметров
brew options gdal
, то, чтобы быть фантастическим, вы можете набрать
brew install --with-postgresql gdal
через некоторое время, когда вам будет хорошо идти с зависимостями, так как proj включая ваши необходимые proj_api.h - зависимости! К сожалению, rgdal до сих пор не находит pro_api.h прямо сейчас, поскольку он не ищет / usr / local / include. Чтобы исправить эту и другие возможные недуги с помощью вашей установки rgdal, используйте следующую команду R для установки rgdal:
> install.packages('rgdal', type = "source", configure.args=c('--with-proj-include=/usr/local/include','--with-proj-lib=/usr/local/lib'))
Это должно быть похоже на то, что вам также понадобится для MacPorts , за исключением шагов варки, а ваши библиотеки / заголовки наиболее вероятны в разделе «/ opt / local / lib» и «/ opt / local / include» соответственно.
Примечание: чтобы заваривать обновления , если вы используете «-with-armadillo» в качестве опции с gdal и обновили armadillo до 7 с 6. Вам придется перекомпилировать gdal перед обновлением / переустановкой rgdal.
rgdal
.
– smacdonald
26 April 2017 в 04:37
Единственное, что работало в моей системе, - это скомпилировать PROJ4 из источника, как описано здесь здесь , а затем установить пакет rgdal как
install.packages("rgdal")
В OSX я загружаю proj из http://www.kyngchaos.com/software/frameworks , и я запускаю следующую команду в R.
install.packages('rgdal', type = "source", configure.args=c('--with-proj-include=/Library/Frameworks/PROJ.framework/Headers', '--with-proj-lib=/Library/Frameworks/PROJ.framework/unix/lib'))
Это сработало для меня:
install.packages('rgdal',repos="http://www.stats.ox.ac.uk/pub/RWin")
На ubuntustudio 14.04 (тот же для всех debian distros):
sudo apt-get install libproj-dev libgdal-dev
Тогда я мог установить пакет rgdal
R info:
R version 3.0.2 (2013-09-25) -- "Frisbee Sailing"
Linux info:
Linux francois-K53SV 3.13.0-34-lowlatency #60-Ubuntu SMP PREEMPT Wed Aug 13 16:15:18 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
apt-file
не работала. Я закончил удалениеlibproj-dev
и повторно установил его из-за некоторой проблемы с коррупцией & amp; затем установитеlibgdal1
,libgdal1-dev
и зависимости (версия 1.11.2 в официальном репозитории на момент написания этой статьи, но я видел version 2 здесь, так что изменение может быть на горизонте) – MichaelChirico 2 September 2015 в 22:43