を構築します。LWJGLは私が工夫の程度時間後、私は私の.gitlab-ci.ymlとしてこれを持って、運と私LWJGLプロジェクトをビルドするためにGitLab CIを取得しようとしてきたGitLab CI
image: java:8-jdk
buildtest:
script:
- mkdir bin
- javac -cp dependencies/lwjgl/lwjgl.jar -d bin/ src/*.java
- cd bin
- java HelloWorld
しかし最終的にはそれはそれは次のログを取得するコードを実行する時間が来るとき、それは、正しくコンパイルするために取得した後:
$ mkdir bin
$ javac -cp dependencies/lwjgl/lwjgl.jar -d bin/ src/*.java
$ cd bin
$ java HelloWorld
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/lwjgl/glfw/GLFWKeyCallback
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
at java.lang.Class.getMethod0(Class.java:3018)
at java.lang.Class.getMethod(Class.java:1784)
at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: org.lwjgl.glfw.GLFWKeyCallback
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 7 more
ERROR: Build failed: exit code 1
正常に動作しますローカルでコンパイルされた場合、それはしかし、org.lwjgl.glfw.GLFWKeyCallback
見つけることができないように私には思えます。だから私は問題が何であるか、どんな考えを理解することができないのですか?
はEDIT:このいくつかの詳細をいじり後
、私はなく、シェルスクリプトで、それが動作しませんGitLab CIは、Linuxを使用しているので、私のマシン上でこれをしようとすると、コマンドプロンプトで、次の作品終わりましたそこにも。
mkdir bin
javac -cp dependencies/lwjgl/lwjgl.jar -d bin/ src/*.java
cd bin
java -cp ../dependencies/lwjgl/lwjgl.jar; -Dorg.lwjgl.librarypath=../dependencies/lwjgl/native/ HelloWorld
エラー(私はのjava.exeのためのその使用方法を知っているが、それは最後に両方のことやエラーを出力):ここでは はシェルスクリプトである私は、新しいエラーと一緒にテストするために迅速本当の書きました:
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
where options include:
-d32 use a 32-bit data model if available
-d64 use a 64-bit data model if available
-server to select the "server" VM
The default VM is server.
-cp <class search path of directories and zip/jar files>
-classpath <class search path of directories and zip/jar files>
A ; separated list of directories, JAR archives,
and ZIP archives to search for class files.
-D<name>=<value>
set a system property
-verbose:[class|gc|jni]
enable verbose output
-version print product version and exit
-version:<value>
Warning: this feature is deprecated and will be removed
in a future release.
require the specified version to run
-showversion print product version and continue
-jre-restrict-search | -no-jre-restrict-search
Warning: this feature is deprecated and will be removed
in a future release.
include/exclude user private JREs in the version search
-? -help print this help message
-X print help on non-standard options
-ea[:<packagename>...|:<classname>]
-enableassertions[:<packagename>...|:<classname>]
enable assertions with specified granularity
-da[:<packagename>...|:<classname>]
-disableassertions[:<packagename>...|:<classname>]
disable assertions with specified granularity
-esa | -enablesystemassertions
enable system assertions
-dsa | -disablesystemassertions
disable system assertions
-agentlib:<libname>[=<options>]
load native agent library <libname>, e.g. -agentlib:hprof
see also, -agentlib:jdwp=help and -agentlib:hprof=help
-agentpath:<pathname>[=<options>]
load native agent library by full pathname
-javaagent:<jarpath>[=<options>]
load Java programming language agent, see java.lang.instrument
-splash:<imagepath>
show splash screen with specified image
See http://www.oracle.com/technetwork/java/javase/documentation/index.html for more details.
bash: -Dorg.lwjgl.librarypath=../dependencies/lwjgl/native/: No such file or directory
私は私が得ることができるので、それは、コマンドプロンプトで次のように動作するものの、このディレクトリが存在するという事実を知っている:コマンドから
がjavac -cp dependencies/lwjgl/lwjgl.jar -d bin/ src/*.java
cd bin
java -cp ../dependencies/lwjgl/lwjgl.jar; -Dorg.lwjgl.librarypath=../dependencies/lwjgl/native/ HelloWorld
出力プロンプトバージョン:
E:\test\bin>java -cp ../dependencies/lwjgl/lwjgl.jar; -Dorg.lwjgl.librarypath=../dependencies/lwjgl/native/ HelloWorld
Hello LWJGL 3.0.0b SNAPSHOT!
E:\test\bin>
私のネイティブフォルダは[this](https://gyazo.com/77e6d0c087de31f5fed02049ea156be3)のようになり、私は.gitlab-ci.ymlを次のように変更しました: ' - java -Dorg.lwjgl.librarypath = dependencies/lwjgl/native/HelloWorld'、それでも正しく実行したくない場合は、上記と同じエラーが表示されます。 – CorruptComputer
あなたはあらかじめ 'bin'ディレクトリに移動します。そのため、パスはおそらく' ../ dependencies/lwjgl/native/'になるはずです。 – javac
'../' – CorruptComputer