Вы не попали в Java-специфические ограничения, но зависит от системы предела. Это лучше всего иллюстрируется тем фактом, что попытка установить переменную CLASSPATH
также не удалась, но установка переменной окружения через export name=value
в оболочке не связана с Java.
Как уже говорилось другими, вы можете попытаться использовать подстановочные знаки для файлов jar в том же каталоге, но вам нужно заботиться о том, чтобы Java выполняла расширение, а не оболочку, как в последнем случае, это снова дало бы слишком длинной командной строки. Таким образом, вам нужно избежать символа *
, чтобы он не обрабатывался оболочкой.
javac
поддерживает чтение аргументов командной строки из внешнего файла, указанного через @filename
, но, к сожалению, пусковая установка java
не поддерживает эту опцию.
Альтернативой было бы создание символических ссылок, указывающих на файлы jar, имеющих более короткие пути и определяющие их. Вы могли бы даже комбинировать подходы, создав один каталог, полный символических ссылок, и указав that/directory/*
как путь к классу.
Но, как представляется, логическая ошибка в требовании. В комментарии вы упоминаете «анализ кода», и анализирующий инструмент не должен требовать анализа кода в своем собственном пути класса приложения. Вы можете получить доступ к файлам классов с помощью обычного ввода-вывода, если хотите прочитать и проанализировать их. Если вы хотите загрузить их, например. для использования встроенного Reflection вы можете создать новые экземпляры ClassLoader
, указывающие на местоположения. Таким образом, инструмент не зависит от пути класса приложения и, например, может считывать данные из файла конфигурации.
Использование специальных погрузчиков классов имеет дополнительное преимущество, которое вы можете сделать close them, когда вы закончите.
Почему? Почему бы не запустить JAR-файл, который перечисляет их все в записи Manifest Class-path? – EJP
Это будет класс, чтобы сделать некоторый анализ кода предварительной сборки, поэтому ему нужны все пути к классам, и он не обязательно должен быть банкой. Я мог бы создать банку, решила бы проблема? – rodi