| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
jgo launches Java applications directly from Maven coordinates—no installation required. Specify a Maven artifact identifier and an optional main class, and jgo resolves dependencies, materializes the environment including the version of Java needed, and runs your program.
# Run Jython REPL (latest version)
jgo org.python:jython-standalone
# Run with specific version
jgo org.python:jython-standalone:2.7.3# Run Jython REPL
jgo org.python:jython-standalone
# Run with arguments
jgo org.python:jython-standalone -- -- script.py --verbose
# Multiple artifacts with main class (use @ separator)
jgo org.scijava:scijava-common+org.scijava:scripting-jython@ScriptREPL
# Force update from remote repos
jgo -u org.python:jython-standalone
# Use specific Java version
jgo --java-version 17 net.imagej:imagej
# Print classpath without running
jgo info classpath org.python:jython-standalone
# Preview commands without executing (--dry-run)
jgo --dry-run run org.scijava:parsington # See java command
jgo --dry-run init org.python:jython-standalone # Preview jgo.tomlimport jgo
# Simple one-liner
jgo.run("org.python:jython-standalone:2.7.3", app_args=["script.py"])
# Build environment without running
env = jgo.build("org.python:jython-standalone")
print(env.classpath) # List of JAR paths
# Resolve dependencies
components = jgo.resolve("org.python:jython-standalone")
for comp in components:
print(f"{comp.groupId}:{comp.artifactId}:{comp.version}")Create reproducible environments:
# jgo.toml
[environment]
name = "my-java-app"
[repositories]
scijava.public = "https://maven.scijava.org/content/groups/public"
[dependencies]
coordinates = ["net.imagej:imagej:2.15.0"]
[entrypoints]
default = "main"
main = "net.imagej.Main"
[settings]
cache_dir = ".jgo" # Local environment like .venv# Run from current directory
jgo sync
# Creates .jgo/ with jars/ and jgo.lock.tomluv tool install "jgo[cli]"pip install "jgo[cli]"conda install -c conda-forge jgogit clone https://github.com/apposed/jgo
uv tool install --with-editable "jgo[cli]" jgoWhen installed in this fashion, changes to the jgo source code will be immediately reflected when running jgo from the command line.
Using jgo as a library dependencyuv add jgoor
pixi add jgoNot sure which to use? Read this.
The cli extra (jgo[cli]) is only needed when using the jgo command-line tool, not when using jgo as a Python library.
| Program | Command |
|---|---|
| Jython REPL | jgo org.python:jython-standalone |
| JRuby eval | echo "puts 'Hello Ruby'" | jgo --class-path-only org.jruby:jruby-complete@jruby.Main |
| Groovy REPL | jgo --class-path-only org.apache.groovy:groovy-groovysh:5.1.0@org.apache.groovy.groovysh.Main |
Note the usage of the + syntax as needed to append elements to the classpath.
If you add scijava.public = https://maven.scijava.org/content/groups/public to the [repositories] section of your settings file (see the configuration docs), you can also try:
| Program | Command |
|---|---|
| SciJava REPL with JRuby | jgo org.scijava:scijava-common+org.scijava:scripting-jruby@ScriptREPL |
| SciJava REPL with Jython | jgo org.scijava:scijava-common+org.scijava:scripting-jython@ScriptREPL |
| SciJava REPL with Groovy | jgo org.scijava:scijava-common+org.scijava:scripting-groovy@ScriptREPL |
| SciJava REPL with Clojure | jgo org.scijava:scijava-common+org.scijava:scripting-clojure@ScriptREPL |
| SciJava REPL with JavaScript | jgo org.scijava:scijava-common+org.scijava:scripting-javascript@ScriptREPL |
Full documentation is available at jgo.apposed.org:
Use help(jgo) in Python for detailed API documentation.
jgo uses ruff for linting and formatting:
make lint# Run all tests
make test
# Run specific test file
bin/test.sh tests/test_maven_basic.py
# Run with coverage
uv run pytest --cov=src/jgo tests/| Back | FazBrowse Home | New Git URL |