编译jruby“Hello world”问题

2023-11-27

我使用 Ruby 编程已经有一段时间了,我真的很喜欢它。最近我开始需要编译一些 ruby​​ 代码。由于多种原因,使用 Ruby2exe 对我来说不是一个选择。所以我决定尝试一下 Jruby(生成一个 jar 就足够了)。

我使用的是 Windows,并且安装了 java JDK 6u17(位于 C:\Program Files\Java\jdk1.6.0_17)。

我在 C:\jruby 安装了 jruby 1.4

我用java创建了一个hello world,编译并执行它就很好(所以java工作正常)。

我创建了一个文件“script.rb”:

puts "Hello, world"

我用 jruby 运行这个程序:

jruby script.rb

而且效果很好。

我确实将 JAVA_HOME 设置为 C:\Program Files\Java\jdk1.6.0_17

我也成功运行:

java -jar c:\jruby\lib\jruby.jar script.rb

然后我使用以下命令进行编译:

jruby -S jrubyc script.rb

它生成类“script.class”

我的问题是我找不到正确执行 script.class 的方法

I try:

java -cp .:c:\jruby\lib\jruby.jar script

我收到错误消息:

Exception in thread "main" java.lang.NoClassDefFoundError: script
Caused by: java.lang.ClassNotFoundException: script
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: script.  Program will exit.

我还尝试将 jruby-complete-1.4.0.jar 以及其他几个选项复制到本地目录。

有人知道我做错了什么吗?


假设你在 Windows 上,我认为你的 -cp arg 是错误的:它应该以分号分隔:

java -cp .;c:\jruby\lib\jruby.jar script

而且,我通过单独设置 CLASSPATH env 获得了更好的运气,例如:


C:\ruby>set CLASSPATH=c:\Program Files\jruby-1.4.0\lib\jruby.jar;

C:\ruby>java hello_world
Hello, world!

但也许那是因为我的类路径需要一个空间。

您使用什么版本的 JRuby?如你所见,我使用的是 1.4。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

编译jruby“Hello world”问题 的相关文章

  • 在 Lisp 解释过程中,“读者”的任务是什么?

    我想知道 读者 在解释 编译 Lisp 程序期间的目的 或者更准确地说 是 读者 的任务 从我刚刚完成的问题前研究来看 在我看来 读者 特别是本例中的 Clojure 可以被视为 语法预处理器 它的主要职责是读取器宏和原始形式的扩展 所以
  • CMake:如何构建共享库和静态库而不需要重新编译源两次

    我想构建同一个库的静态版本和共享版本 如上所述是否可以让 CMake 构建同一库的静态版本和共享版本 https stackoverflow com questions 2152077 is it possible to get cmake
  • Opencv 函数只能以 C 代码方式调用,不能以 C++ 方式调用

    我对 Opencv 真的很陌生 按照说明下载并安装 Opencv 2 4 后 我开始编写我的第一个 Opencv 程序 这基本上是网络上教程的副本 include
  • 为什么 Google Mocks 发现这个函数调用不明确?

    我在尝试开始使用 Google Mocks 时遇到了问题 由于某种原因它无法告诉我在EXPECT CALL宏 即使类型是一致的 我想知道为什么它不只匹配第一个函数 以及我需要做什么 添加才能使其匹配第一个函数 模拟类 class GMock
  • 编译器是否优化了净零位移?

    我有一些代码 如下面的代码块 我不允许发布原始代码 cpp我认为正在编译的文件clang Ubuntu clang version 3 5 2 3ubuntu1 tags RELEASE 352 final based on LLVM 3
  • 为什么 Logstash 需要这么长时间才能启动/加载?

    Edit 我更改了标题 因为问题不是我最初想象的那样 事实是 logstash 需要超过一分钟开始 这可能会被误解为 沉默 我正在尝试让logstash运行 所以我按照官方网站上的说明进行独立安装 http logstash net doc
  • 如何在其他src文件夹中包含头文件

    我有一个 C 项目 有两个 src 文件夹 文件夹1中的源文件可能需要包含src文件夹2中的头文件 这可能吗 或者我应该如何编写我的 Makefile 谢谢 根据两个文件夹的相关程度 例如 如果它们是同一个项目 那么它可以很简单 inclu
  • 在 Android Studio MacOS 中清理项目时出现“ninja”错误

    我在 macos mojave 中使用 Android Studio 3 5 我有一个项目 在一个文件夹中包含 java 和 ndk 代码 我们称之为 project folder A 我复制了这个文件夹 将其重命名为 project fo
  • 使用两个不同的泛型参数调用泛型函数仍然可以编译

    下面的代码怎么可能编译通过 据我所知 count 函数是用两种不同的类型调用的 但编译器并没有抱怨并愉快地编译了这段代码 public class Test public static
  • 为什么这个 C++ 包装类没有被内联掉?

    EDIT 我的构建系统出了问题 我还在弄清楚到底是什么 但是gcc产生了奇怪的结果 尽管它是 cpp文件 但是一旦我使用了g 然后它按预期工作 对于我一直遇到麻烦的事情来说 这是一个非常精简的测试用例 其中使用数字包装类 我认为会内联 使我
  • 不必要的包含文件是否会产生开销?

    我看到了几个关于如何检测 C 项目中不必要的 include 文件的问题 这个问题经常引起我的兴趣 但我一直没有找到满意的答案 如果包含一些未在 C 项目中使用的头文件 这是一种开销吗 我理解这意味着在编译之前 所有头文件的内容将被复制到包
  • 如何在 Visual Studio Code 中编译和运行 Java 代码

    我下载了 Visual Studio Code 并安装了 Java扩展包 https marketplace visualstudio com items itemName vscjava vscode java pack 由微软 之后我下
  • Maven:从构建中排除测试

    我在项目的 src test java 文件夹中有一些类用作测试 当我使用标准 Maven 编译插件运行 Maven 时 这些项目被编译成 class 文件 并包含在打包编译代码的 jar 中 在运行 Maven 和构建我的版本之前 我已经
  • jruby 的路边(卷曲)?

    我正在尝试将curl 与jruby 结合使用来获得网页 文件的一些响应时间 通常在 ruby 中这不会是一个问题 我可以安装 gem gem install junction 一切都很好 遏制似乎与 jruby 不兼容 那么有没有一种替代方
  • 可以读取目标文件吗?

    我很好奇 obj文件 我几乎不知道它们是什么 或者它们包含什么 所以我用 Vim 文本编辑器打开它们 我在里面发现了一种类似外星人的语言 有什么办法可以理解它们代表什么以及它们的内容是什么 另外 它们的用途是什么 Thanks Sure 但
  • .NET 属性生成“必须声明主体,因为它未标记为抽象或外部”编译错误

    我有一个 NET 3 5 目标框架 Web 应用程序 我有一些代码看起来像这样 public string LogPath get private set public string ErrorMsg get private set 它给了
  • CMake:连续编译程序两次

    为了能够进行许多自动优化 我希望能够使用标志编译我的程序 fprofile generate首先 然后运行它生成配置文件 然后使用以下命令重新编译程序 fprofile use反而 这意味着我想连续编译我的程序两次 使用两个不同的CMAKE
  • 不同的 JDK 更新会产生不同的 Java 字节码吗?

    假设场景 我有一个项目 其源合规性级别指定为 1 5 现在 我使用两种不同的 JDK 编译此项目 首先使用 JDK 6 Update 7 然后使用 JDK 6 Update 20 这两个不同的 JDK 是否会生成不同的 Java 字节代码
  • 在 GNU C++ 编译器中运行具有多个源文件的程序

    我在 Windows 7 操作系统上使用 DEV GNU c 编译器 我需要知道如何编译具有多个源文件的程序 这是例子 FILE1 void f1 printf this is another file under same program
  • “%d”需要“int”类型的参数,但参数 2 的类型为“long unsigned int”[-Wformat=] [重复]

    这个问题在这里已经有答案了 我不断收到编译警告 但我不知道如何解决它 d expects argument of type int but argument 2 has type long unsigned int 程序运行良好 但我仍然收

随机推荐

  • Chart.js 压缩条形图上的垂直轴

    我有一个数据集 其中最后一个值总是非常高 这会导致我的条形图出现问题 几乎所有其他值如果不悬停在它们上面就很难有感觉 这是一个屏幕截图 这就是我想要达到的目标 所以我的问题是 这可以在普通 Chart js 中实现吗 或者我需要一个插件吗
  • 在 JavaScript (node.js) 中设置错误原因

    是否可以指定 JavaScript node js 中错误的原因 我找到了Mozilla 文档它定义了如何设置消息 文件 行 但不定义错误原因 我对此感兴趣的原因是我想捕获内部错误并将其传播到嵌套异常中的表面 类似于 Java 中的异常链
  • 如何从类似文件的对象中使用 python mimetypes.guess_type

    gt gt gt mimetypes guess type picture jpg image jpeg None 现在我有一个类似文件的对象 例如 stingIO 哪些内容是图像的数据 我如何从类似文件的对象中检测 mimetypes p
  • 显示内存中的 RGBA 图像

    我有一个包含 RGBA 编码图像的 C 字节数组 在 WPF 中显示此图像的最佳方式是什么 一种选择是从字节数组创建 BitmapSource 并将其附加到 Image 控件 但是 创建 BitmapSource 需要 RGBA32 的 P
  • Django 模板无法循环defaultdict

    import collections data firstname John lastname Smith firstname Samantha lastname Smith firstname shawn lastname Spencer
  • 如何捕获 Windows Azure(辅助)角色中未处理的异常

    我试图捕获我的工作角色中所有未处理的异常 我尝试放一个try catch块进入Run 方法 按照建议here 但没有成功 public override void Run try base Run catch Exception ex Tr
  • 检查 Python 中是否存在某种*类型*的文件

    我意识到这看起来与检查文件是否存在的其他问题类似 但它是不同的 我正在尝试找出如何检查type文件存在 如果不存在则退出 我最初尝试的代码是这样的 filenames os listdir os curdir for filename in
  • 如何使用composer安装部分git存储库?

    我只想需要 git 存储库的子部分 而不是完整的东西 我想这样做的原因是因为存储库很大 就我而言 存储库是 https github com pubnub pubnub api git我只想要 php 目录 我在作曲家中定义了以下包 typ
  • OpenCV功能类似于matlab的“查找”

    我正在寻找 openCV 中的一个函数来帮助我制作图像蒙版 例如在 MATLAB 中 B A or B 零 大小 A B A 10 c 有些功能可以让你通过mask向他们提出论据 按照您描述的方式创建面具 我认为您正在追求Cmp 或 Cmp
  • 检查 Intent.ACTION_VIEW 上的用户操作

    我有一个填充了一些文件的列表视图 可以有多种类型 如 pdf 或文档 当用户单击一个文件时 我会获取文件 mime 类型并启动一个意图 让用户选择使用哪个应用程序来打开该文件 什么我想知道用户是否选择了某些内容 或者只是按回键而没有选择任何
  • 在 python 中填充队列并管理多处理

    我在 python 中遇到这个问题 我有一个 URL 队列 需要时不时地检查一下 如果队列已满 我需要处理队列中的每个项目 队列中的每个项目必须由单个进程处理 多处理 到目前为止 我设法 手动 实现这一点 如下所示 while 1 self
  • 带有组合 API 的 Vue 3 事件总线

    我已经设置了mitt并尝试将事件分派到另一个组件 但我遇到了困难 因为在setup 它没有的方法this用于访问应用程序实例 这是我尝试过的 import App from App vue const el document getElem
  • 了解用于函数调用的 auipc+jalr 序列

    我试图阅读RISC V生成的程序集gcc我发现gcc创建序列auipc jalr对于某些函数调用 我不明白它是如何工作的 这是一个简单的例子 考虑以下C源文件 unsigned long id unsigned long x return
  • 如何重命名数组中对象的键

    如何用另一个元素替换数组元素值 我有这样的数组 不使用 jquery this products text prod1 value 1 text prod2 value 2 text prod3 value 3 我想将 文本 替换为 标签
  • Qt。自动添加应用程序版本

    In a pro文件 我可以设置应用程序的版本 例如 VERSION
  • 如何在 Android 中使用一台相机创建多个镜头或预览

    我想创建像上面这样的东西 三个盒子 就像相机预览一样 关于做什么的任何想法或概念 我尝试获取相机的实例并将其放置到三个相机预览对象中 但我收到一条错误消息 我想这是不允许的 这是我的代码 private CameraPreview mPre
  • WCF 和多个命名空间的问题 - 跨多个服务引用共享对象类型

    我有两个网络服务 一种具有用户功能 一种具有管理功能 这两种服务都可以有效地使用相同的对象类型 例如 AdminService 提供删除 修改 Customer 对象的功能 UserService 提供列出 读取 Customer 对象的功
  • 如何在工具提示中自动换行文本

    如何对需要出现在工具提示中的文本进行自动换行 看起来不直接支持 如何对显示的工具提示进行自动换行 这是一种使用反射的方法 实现这一点 DllImport user32 dll private extern static int SendMe
  • Java 中的“using”指令

    当类型名称太长时 在 C 中我可以创建如下别名 using Dict System Collections Generic Dictionary
  • 编译jruby“Hello world”问题

    我使用 Ruby 编程已经有一段时间了 我真的很喜欢它 最近我开始需要编译一些 ruby 代码 由于多种原因 使用 Ruby2exe 对我来说不是一个选择 所以我决定尝试一下 Jruby 生成一个 jar 就足够了 我使用的是 Window