Thanks guys! In fact it didn't come to my mind that the binaries could be cross-platform, so I didn't even try them on my mac – but of course they work fine :D
If I need to build it one day, using the fuseki server jar seems like a good idea. I also came across a maven plugin called "shade" that tells maven to put all libraries in the output jar: http://stackoverflow.com/a/10569417/489916 Dan Michael On 24 July 2013 09:28, Andy Seaborne <[email protected]> wrote: > On 23/07/13 22:15, Joshua TAYLOR wrote: > ... > > > If, under the apache-jena directory, you make a lib directory and put > > the jars there, and use the arq binary that in apache-jena/bin, you'll > > be all set: > ... > > Yes - look in the apache-jena area for a freshly built distribution (under > target/ and in your local maven repo). > > If you just want the latest development codebase built, that happens > automatically each "night" (actually about 8am UTC - the build system is > less busy then): > > https://repository.apache.org/**content/repositories/** > snapshots/org/apache/jena/**apache-jena/<https://repository.apache.org/content/repositories/snapshots/org/apache/jena/apache-jena/> > > so you can pick up a binary distribution for the commands from there. > > This includes all the scripts. > > If you are changing the source, you'll need to build it. > > Each module can be built on it's own, in which case "mvn clean install" > will put the new jar into target/jena-MODULE.jar and place it in your local > repo. > > >> export ARQROOT="$HOME/dev/jena-2.10.**1/jena-arq" > > If you want the commands, you want an unpacked binary distribution. The > scripts are in bin/* and they automatically set the environment root JENA > > https://jena.apache.org/**documentation/tools/index.html<https://jena.apache.org/documentation/tools/index.html> > > The environment variable, if you need to set it, is JENAROOT. > > ARQROOT is to using the development area of ARQ alone and from Eclipse. > You want to look in the apache-jena module where there is a binary > distribution. > > There is another set of scripts in jena-arq/bin: these are for working > with the development system e.g. under Eclipse. These are sensitive to > class folders. They are also a bit fragile because they assume the Eclipse > setup. > > One trick is to use the Fuseki server jar. This is a complete system in a > single jar. It is the only thing you need on the classpath. > > java -cp fuseki-server.jar arq.sparql .... > > will run the command. The Fuseki server jar includes core jena, ARQ, TDB, > and all their dependencies. > > Andy > > > On 23/07/13 22:15, Joshua TAYLOR wrote: > >> On Tue, Jul 23, 2013 at 3:14 PM, Dan Michael O. Heggø >> <[email protected]> wrote: >> >>> Hi, this is probably a "stupid question", but I have no experience with >>> Maven and very little with Java, so I'm quite stuck right now. I have >>> Maven >>> 3.0.5 installed, and here's what I've tried to install arq: >>> >>> cd $HOME/dev >>>> wget http://www.apache.org/dist/**jena/source/jena-2.10.1-** >>>> source-release.zip<http://www.apache.org/dist/jena/source/jena-2.10.1-source-release.zip> >>>> unzip jena-2.10.1-source-release.zip >>>> cd jena-2.10.1 >>>> mvn install >>>> >>> >>> Builds fine and tests run fine. Here's a complete log: >>> http://pastebin.com/7yBvdChH >>> >>> Next I did: >>> >>> export ARQROOT="$HOME/dev/jena-2.10.**1/jena-arq" >>>> export PATH="$PATH:$HOME/dev/jena-2.**10.1/jena-arq/bin" >>>> arq_path >>>> >>> >>> /Users/danmichael/dev/jena-2.**10.1/jena-arq/target/classes >>> >>> arq >>>> >>> >>> Exception in thread "main" java.lang.**NoClassDefFoundError: >>> com/hp/hpl/jena/shared/**JenaException >>> at arq.arq.main(arq.java:34) >>> Caused by: java.lang.**ClassNotFoundException: >>> com.hp.hpl.jena.shared.**JenaException >>> at java.net.URLClassLoader$1.run(**URLClassLoader.java:366) >>> at java.net.URLClassLoader$1.run(**URLClassLoader.java:355) >>> at java.security.**AccessController.doPrivileged(**Native Method) >>> at java.net.URLClassLoader.**findClass(URLClassLoader.java:**354) >>> at java.lang.ClassLoader.**loadClass(ClassLoader.java:**423) >>> at sun.misc.Launcher$**AppClassLoader.loadClass(**Launcher.java:308) >>> at java.lang.ClassLoader.**loadClass(ClassLoader.java:**356) >>> ... 1 more >>> >>> >>> After taking a look at the arq bin file, I tried >>> >>> java -cp jena-core/target/classes:jena-**arq/target/classes: arq.arq >>>> >>> >>> but then I just got another NoClassDefFoundError for >>> "org/apache/log4j/**PropertyConfigurator" instead. I didn't manage to >>> find >>> that class. Could there be some path I have not set (correctly)? >>> >> >> I use the binary distribution, so I don't know if this is the *right* >> way to do this, but this may get you going until someone can respond >> with an authoritative answer: >> >> After you've downloaded and built Jena, there are lots of jars scattered >> about: >> >> taylorj@kamja:~/Downloads/**jena-2.10.1$ find . -iname "*.jar" >> ./jena-core/target/jena-core-**2.10.1-javadoc.jar >> ./jena-core/target/jena-core-**2.10.1-test-sources.jar >> ... >> ./jena-iri/target/jena-iri-0.**9.6-sources.jar >> ./jena-iri/target/jena-iri-0.**9.6-javadoc.jar >> ./jena-iri/target/jena-iri-0.**9.6.jar >> >> If, under the apache-jena directory, you make a lib directory and put >> the jars there, and use the arq binary that in apache-jena/bin, you'll >> be all set: >> >> taylorj@kamja:~/Downloads/**jena-2.10.1$ mkdir apache-jena/lib >> taylorj@kamja:~/Downloads/**jena-2.10.1$ find . -iname "*.jar" -exec cp >> \{\} ./apache-jena/lib/ \; >> >> You'll get a bunch of warnings there when it tries to copy from >> apache-jena/lib into apache-jena/lib, but that's just because I didn't >> write a better find that would exclude from searching there. Now you >> should be able to run arq: >> >> taylorj@kamja:~/Downloads/**jena-2.10.1$ ./apache-jena/bin/arq >> No query string or query file >> >> taylorj@kamja:~/Downloads/**jena-2.10.1$ ./apache-jena/bin/arq --data >> ~/.../data.n3 --query ~/.../subquery.sparql >> ---------- >> | y | >> ========== >> | :node3 | >> ---------- >> >> >
