小编Edu*_*Edu的帖子

编译jruby"Hello world"问题

我用Ruby编程了一段时间,我真的很喜欢它.最近我开始需要编译一些ruby代码.有几个原因使用Ruby2exe不是我的选择.所以我决定尝试Jruby(生成一个罐子就足够了).

我正在使用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的方法

我尝试:

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 …
Run Code Online (Sandbox Code Playgroud)

compilation jruby

6
推荐指数
1
解决办法
5732
查看次数

在perl中重定向输出时fork exec kill的问题

我在perl中创建了一个脚本来运行超时的程序.如果正在执行的程序需要更长的时间,那么超时将比脚本终止该程序并返回消息"TIMEOUT".

脚本工作得很好,直到我决定重定向执行程序的输出.

当stdout和stderr被重定向时,脚本执行的程序没有被杀死,因为它的pid与我从fork获得的pid不同.

似乎perl执行一个shell,在重定向的情况下执行我的程序.

我想有输出重定向但仍能够在超时的情况下终止程序.

有关如何做到这一点的任何想法?

我的脚本的简化代码是:

#!/usr/bin/perl

use strict;
use warnings;
use POSIX ":sys_wait_h";

my $timeout = 5;
my $cmd = "very_long_program 1>&2 > out.txt";

my $pid = fork();
if( $pid == 0 )
{
   exec($cmd) or print STDERR "Couldn't exec '$cmd': $!";
   exit(2);
}
my $time = 0;
my $kid = waitpid($pid, WNOHANG);
while ( $kid == 0 )
{
   sleep(1);
   $time ++;
   $kid = waitpid($pid, WNOHANG);
   print "Waited $time sec, result $kid\n";
   if ($timeout > 0 && …
Run Code Online (Sandbox Code Playgroud)

perl redirect fork kill

6
推荐指数
1
解决办法
2291
查看次数

Ruby Shoes:将应用程序最小化到Windows上的系统托盘

有谁知道将鞋子应用程序放在MS Windows系统托盘中是否可能(如果是,如何?)?

像使用最小化将窗口放入系统托盘的东西.

ruby shoes

4
推荐指数
1
解决办法
931
查看次数

使用带两个源的gem install时指定源

我们有一个内部gem服务器(http://my.gem.server),在这个服务器上我们存储gem foo-1.2.3.gem

我们的用户将此服务器添加到gem源.我们的宝石来源看起来像::

*** CURRENT SOURCES ***

https://rubygems.org/
http://my.gem.server/
Run Code Online (Sandbox Code Playgroud)

到目前为止它的工作非常好.

然后社区中的某个人创建了foo-0.0.1.gem

现在,当我们的内部客户端执行gem安装时,安装了来自社区的foo-0.0.1.gem而不是我们的foo-1.2.3.gem

我们已经尝试将我们的源代码放在标准rubygems.org之前,但仍然得到相同的结果.

有谁知道如何告诉gem install从我们的内部源获取gem?

如果它在我们的网站上找不到,那么如果只是点击社区来源会更好.

ruby gem

4
推荐指数
1
解决办法
6032
查看次数

标签 统计

ruby ×2

compilation ×1

fork ×1

gem ×1

jruby ×1

kill ×1

perl ×1

redirect ×1

shoes ×1