Add CLI classpath options - #184
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #184 +/- ##
==========================================
+ Coverage 86.50% 86.89% +0.38%
==========================================
Files 207 208 +1
Lines 20224 20420 +196
==========================================
+ Hits 17495 17744 +249
+ Misses 2729 2676 -53 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
Adds Java-launcher-compatible classpath handling to the rust_java CLI, aligning option parsing with the Oracle launcher while preserving the existing run API behavior. It also improves URLClassLoader resource lookup semantics around directory entries and missing URLs.
Changes:
- Add
-cp/-classpathsupport withCLASSPATHand current-directory fallback, and ignore user classpath in CLI-jarmode. - Refactor classpath property construction into a dedicated helper and add unit/integration coverage for launcher parsing/behavior.
- Update
URLClassLoaderto treat directory URLs without trailing slashes as directories and to continue searching after missing entries.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/test_cli.rs | Adds end-to-end CLI tests for classpath options, env fallback, -jar behavior, and error reporting. |
| src/main.rs | Implements launcher-style argument parsing (-cp/-classpath/-jar) and wires computed classpath into run. |
| src/lib.rs | Extracts classpath property construction into build_class_path and adds unit tests for ordering/empty entries. |
| java_runtime/tests/classes/java/net/test_url_class_loader.rs | Adds regression test ensuring missing URL entries don’t prevent later JAR resource lookup. |
| java_runtime/src/classes/java/net/url_class_loader.rs | Updates URLClassLoader::findResource directory/jar detection and missing-entry behavior. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 589f73522d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Summary
-cpand-classpathlauncher options withCLASSPATHand current-directory fallback-jarmoderunAPI classpath behavior and built-in runtime priorityURLClassLoaderrecognize directory entries without trailing slashes and continue past missing entriesValidation
cargo test --workspace --quiet(246 passed, 1 ignored)cargo fmt --all -- --checkcargo clippy --workspace --all-targets -- -D warningsgit diff --checkNotes
The local environment does not contain an Oracle
rt.jar, so the external JRE smoke test was not run. The same directory and JAR lookup paths are covered with repository fixtures and actual CLI process tests.