我有一个Eclipse Java项目.它包含一个名为"dist"的文件夹.在该文件夹中是.jar文件.
如何在此项目中进行设置以确保在重新编译项目中的一个.java文件时更新此.jar文件?
谢谢.
当我尝试从Eclipse中执行我的RCP应用程序时,我收到以下错误消息:
com.bah.gs.arts.jekyll.plugins.VideoLog
Missing Constraint: Required Bundle: com.bah.gs.arts.jekyll.plugins.JVLC_Runtime; bundle-version="0.9.1"
谁能告诉我我是如何解决这个问题的?
我有一个Perl脚本,它使用File :: Next :: files遍历目录层次结构.它只会返回以".avi",".flv",".mp3",".mp4"和".wmv"结尾的脚本文件.它还将跳过以下子目录:".snvn"和以".frames"结尾的任何子目录.这是在指定的file_filter和descend_filter下面的子程序.
my $iter = File::Next::files(
{ file_filter => \&file_filter, descend_filter => \&descend_filter },
$directory );
sub file_filter {
# Called from File::Next:files.
# Only select video files that end with the following extensions.
/.(avi|flv|mp3|mp4|wmv)$/
}
sub descend_filter {
# Called from File::Next:files.
# Skip subfolders that either end in ".frames" or are named the following:
$File::Next::dir !~ /.frames$|^.svn$/
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是将允许的文件扩展名和不允许的子目录名放在配置文件中,以便可以即时更新它们.
我想知道的是如何根据配置文件中的参数编写子程序来构建正则表达式结构?
/.(avi|flv|mp3|mp4|wmv)$/
$File::Next::dir !~ /.frames$|^.svn$/
Run Code Online (Sandbox Code Playgroud) 我之前有一个问题得到了Perl专家,Perl作者和Perl培训师brian d foy 的以下回复:
[If]你在每个文件名的末尾寻找一个固定的字符序列.您想知道该固定序列是否在您感兴趣的序列列表中.将所有扩展存储在哈希中并查看该哈希:
my( $extension ) = $filename =~ m/\.([^.]+)$/;
if( exists $hash{$extension} ) { ... }
您不需要构建正则表达式,也不需要经历几个可能的正则表达式替换来检查您必须检查的每个扩展.
感谢brian的建议.
我现在想知道的是在上述案例中最佳做法是什么.应该只定义键,这是我需要实现上述内容,还是应该总是定义一个值?
我的 perl 脚本中有以下代码:
我的 $ 目录;
我的文件;
我的 $help;
我的$man;
我的 $verbose;
undef $目录;
undef @files;
undef $help;
undef $man;
undef $verbose;
获取选项(
"dir=s" => \$directory, # 带有默认值的可选变量 (false)
"files=s" => \@files, # 允许逗号分隔的可选变量
# 文件名列表以及多个
# 此选项出现的次数。
“帮助|?” => \$help, # 带有默认值的可选变量 (false)
"man" => \$man, # 带有默认值的可选变量 (false)
"verbose" => \$verbose # 带有默认值的可选变量 (false)
);
如果(@files){
@files = split(/,/,join(',', @files));
}
处理互斥命令行参数的最佳方法是什么?在我的脚本中,我只希望用户只输入“--dir”或“--files”命令行参数,但不能同时输入两者。反正有没有配置Getopt来做到这一点?
谢谢。
我正在编写一个Eclipse插件,它打开一个文件并显示文件中包含的所有图像.此图像显示是GUI应用程序的一部分.通过将每个图像与SWT Canvas小部件相关联来呈现每个图像.当我打开文件时,我拥有确定我必须显示的图像数量所需的所有信息.我虽然一个接一个地创建所有Canvas对象并将每个Canvas对象存储在某种类型的数组(如数据结构)中是有意义的.我打开的每个文件都有不同数量的图像要显示.我决定用一个ArrayList.
我按如下步骤操作:我为每个图像创建一个Canvas对象,并将所有Canvas对象存储在一个ArrayList.问题在于:每个Canvas对象都有一个PaintListener并MouseListener与之关联 - 用于调整大小并检测图像是否已被"单击".我在'for循环'中创建所有Canvas对象 - 包括为每个Canvas对象分配一个PaintListener和MouseListener,如下所示:
`
//
// Assume the following ArrayLists have been defined:
// myCanvases, myImages, and myFrames
//
for (int i = 0; i < numberOfImages; i++) {
canvas = new Canvas(getMyComposite(), SWT.BORDER |
SWT.NO_MERGE_PAINTS | SWT.NONE );
canvas.setLayoutData(getMyGridData());
.
.
.
canvas.addPaintListener(new PaintListener() {
public void paintControl(final PaintEvent event) {
if (myImages.get(i) != null) {
myImages.get(i).dispose();
event.gc.drawImage(mySceneImages.get(element), 0, 0);
}
}
}); …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种更优雅的方式来创建一个包含我从配置文件中读取的列表的哈希.这是我的代码:
read_config($config_file => my %config);
my $extension_list_reference = $config{extensions}{ext};
my @ext;
# Store each item of the list into an array
for my $i ( 0 .. (@$extension_list_reference - 1) ) {
$ext[$i] = $extension_list_reference->[$i];
}
# Create hash with the array elements as the keys
foreach my $entry (@ext) {
$extensions{$entry} = "include";
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
更新:
我可以把这个问题解决成一个更简单的问题:
我想弄清楚正确的正则表达式是用两个反斜杠替换任何一次反斜杠的情况.
我想转此:
vlc.plugin.path = C:\Program Files\JekyllV0.9.2\\VLC_1.0.0\\plugins
Run Code Online (Sandbox Code Playgroud)
成:
vlc.plugin.path = C:\\Program Files\\JekyllV0.9.2\\VLC_1.0.0\\plugins
Run Code Online (Sandbox Code Playgroud)
原始问题:
我想使用Perl Regex在文件中更改以下内容:
我尝试了以下方法:
perl" -p -i.orig -e "s#\\#\\\\#g" -e "s#/#\\\\#g" %VIDEOLOG_PROPERTIES_FILE%
Run Code Online (Sandbox Code Playgroud)
%VIDEOLOG_PROPERTIES_FILE%包含的位置:
vlc.plugin.path = C:\Program Files\JekyllV0.9.2/VLC_1.0.0/plugins
Run Code Online (Sandbox Code Playgroud)