小编T-B*_*ull的帖子

为什么文件实用程序将Microsoft Word文件识别为CDF?这个CDF是什么?

我有一些旧的Microsoft Word文件(可能是Word 97),并注意到标准的Unix文件实用程序将这些文件识别为"CDF".它实际上更精确,倾倒详细的元数据,例如:

CDF V2 Document,
Little Endian, 
Os: Windows, 
Version 4.0, 
Code page: 1252, 
Title: ..., 
Author: ..., 
Template: Normal.dot, 
Last Saved By: ..., 
Revision Number: 1, 
Name of Creating Application: Microsoft Word 8.0, 
Create Time/Date: ..., 
Last Saved Time/Date: ..., 
Number of Pages: 1, 
Number of Words: 95, 
Number of Characters: 542, 
Security: 0
Run Code Online (Sandbox Code Playgroud)

CDF代表什么?这是一种通用的容器格式,如媒体文件的RIFF?我在网上找不到任何有用的东西."通道定义格式"和"复合文档格式"显然不是意思,因为那些Microsoft Word文件是完全二进制的.对于通用数据格式,我找不到连接.我试图在文件util的源代码中找到一些东西(在FreeBSD附带的版本中),但我只能发现它有一个专用的readcdf.c处理这种格式.

ms-word

17
推荐指数
1
解决办法
1万
查看次数

使用系统类路径进行ant javac任务

我希望javac任务使用系统类路径中的jar,我指的是在ant启动之前在shell环境中设置的类路径.那个类路径是

CLASSPATH=D:\local\lib\java\*;.;C:\lib\java\*;C:\lib\java\db\*
Run Code Online (Sandbox Code Playgroud)

在我的系统上.我在那里有许多项目使用的流行罐子.我在构建文件中使用的基本代码片段是

<target name="build">
    <mkdir dir="${obj}" />
    <javac srcdir="${src}" destdir="${obj}"
        includes="**/*.java"
        excludes="**/package-info.java **/deprecated/*.java"
        includeAntRuntime="no" debug="true" debuglevel="source,lines"
    >
        <compilerarg value="-Xlint"/>
    </javac>
</target>
Run Code Online (Sandbox Code Playgroud)

这样,ant只将输出目录作为类路径传递.

[javac] '-classpath'
[javac] 'D:\dev\tbull-projects\jsonc\obj'
Run Code Online (Sandbox Code Playgroud)

(jsonc是我正在研究的项目,并且D:\dev\tbull-projects\jsonc是工作目录.)我浏览了一段时间的文档并提出了两次尝试.第一个是将属性添加classpath="${java.class.path}"到javac标记.这会将一个非常长的类路径传递给编译器,列出来自ant自己的lib目录的每个jar,最后是来自JDK的tools.jar.不是我想要的类路径.

第二枪是设定

    <property name="build.sysclasspath" value="first" />
Run Code Online (Sandbox Code Playgroud)

在javac被调用之前,这让我朝着正确的方向前进.现在这些行是输出:

dropping D:\dev\tbull-projects\jsonc\D:\local\lib\java\* from path as it doesn't exist
dropping D:\dev\tbull-projects\jsonc\C:\lib\java\* from path as it doesn't exist
dropping D:\dev\tbull-projects\jsonc\C:\lib\java\db\* from path as it doesn't exist
dropping D:\dev\tbull-projects\jsonc\C:\Program Files\Java\jdk1.6.0_18\jre\lib\sunrsasign.jar from path as it doesn't exist
dropping D:\dev\tbull-projects\jsonc\C:\Program Files\Java\jdk1.6.0_18\jre\classes from path as it doesn't exist …
Run Code Online (Sandbox Code Playgroud)

java ant classpath

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

列出所有已加载/定义(未安装)的包

请在回答之前仔细阅读这个问题,这个问题经常被误解。

我需要一种方法来检查当前解释器中是否存在特定包。我想可能有一种方法可以列出所有已加载的包,以便我可以在该列表中进行搜索。让我们举个例子。这是一个简单的脚本,定义了几个包:

#!/path/to/perl

package Foo;

# some code in package Foo

package Bar;

# some code in package Bar

package main;

# main program. Want to have a list which includes 'Foo' and 'Bar'
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,这里没有useor require。这才是重点。我不是在寻找系统上安装的模块(可以通过 traversing 列出这些模块@INC)。我也不寻找已被删除的模块require(那些在 中列出%INC)。我想要一个运行时可用的列表,即已使用package语句定义的包。我想这相当于谈论已定义的名称空间列表。

这有什么好处呢?

事情是这样的。在一个相当大的项目中,我经常发现自己重构模块的结构。这包括移动或重命名模块/包。将模块从Util::Foo重命名为 时Util::Bar,必须完成 3 件事。

  • 将模块Util/Foo.pm从重命名为Util/Bar.pm
  • 将包语句从 修改package Util::Foo;package Util::Bar;
  • 将 …

perl

5
推荐指数
2
解决办法
370
查看次数

标签 统计

ant ×1

classpath ×1

java ×1

ms-word ×1

perl ×1