Возможно, вы можете вызвать GLContext.getCurrent(). GetPlatformExtensionsString() очень рано, но он вернет не пустое значение, только если контекст OpenGL был выполнен как минимум один раз и в соответствующем потоке. Не забудьте вызвать GLProfile.initSingleton() перед вызовом GLContext.getCurrent().
Однако комментарий pqnet верен. Множество компьютеров (особенно современных ноутбуков) имеют несколько графических карт и механизмов, которые трудно понять, чтобы переключиться на другой (например, Optimus) в зависимости от потребляемой мощности, профиля производительности («высокая производительность» или нет). Кроме того, могут поддерживаться различные драйверы (дремучий визуализатор GDI и истинный драйвер OpenGL под Windows), часто поддерживаются несколько профилей (совместимые с прямой и обратной совместимостью профили, профили ES даже на настольных компьютерах), ... JOGL будет выполнять свои лучше всего выбрать наиболее способный, но он может использовать разные для вне экрана и на экране. Первый контекст OpenGL, используемый GLProfile и тот, который используется для первого созданного чертежа, может быть очень различным.
Эта проблема не только проблема с JOGL. Мое предложение помогает узнать, какие расширения доступны с устройством по умолчанию. Вы можете использовать GLProfile.glAvailabilityToString() и GLProfile.getDefault() тоже.
N.B: Я предполагаю, что вы используете хотя бы JOGL 2.3.1. Содержание JOGL 1 было остановлено около 5 лет назад.